如何无需密码进行SSH连接

安全 数据安全
这个简单的教程讲解了如何无需输入密码 SSH 连接到远程机器。在你需频繁的登陆到同一机器,而又不得不一次次输入密码时就可以使用这一技术。这也很适于这样的场景:当你有一个脚本需要通过 SSH 从远程机器取文件或者在远程机器上执行一个任务,并且希望能自动的运行该脚本,而用不着人工去输入一个密码。
这个简单的教程讲解了如何无需输入密码 SSH 连接到远程机器。在你需频繁的登陆到同一机器,而又不得不一次次输入密码时就可以使用这一技术。这也很适于这样的场景:当你有一个脚本需要通过 SSH 从远程机器取文件或者在远程机器上执行一个任务,并且希望能自动的运行该脚本,而用不着人工去输入一个密码。

这些指令在 Linux 和 Mac 下能正常工作。你可以在 Windows 下参照同样的方法来使用 Putty,但是我这里没有针对具体 Putty 指令作描述。

目标:从本机登陆到远程服务器无需输入密码

步骤 1/2:在本机上:生成认证码

认证码是一个私钥公钥对。你的公钥也是一个 2-3 行的长长看不懂东西。公钥就像是你登录后的***标识。私钥就像是你的密码,但比一个规则的密码要长。你可以通过如下命令来产生你的公钥和私钥:
 
1.ssh-keygen -t rsa

1.Generating public/private rsa key pair.
Enter file in which to save the key (/home/vineetmanohar/.ssh/id_rsa:

接受默认的选择。按回车键

1.Enter passphrase (empty for no passphrase):
2.Enter same passphrase again:

回车两次。密钥(passphrase) 是用来对你的私钥进行加密的,加密后就没有人能看得懂它了。然而,假如你想要无密码登陆的话,就不能对你的私钥进行加密。
1.The key fingerprint is:
2.5e:26:52:34:a1:22:18:68:11:11:7d:8d:c6:d5:4b:bf vineetmanohar@vineetmanohr.com

刚刚做了什么?

在你的本机上的 ~/.ssh 目录中,你创建了两个文件。

1.cd ~/.ssh
2.ls -l

1.-rw------- 1 vineetmanohar vineetmanohar 1675 2009-07-17 17:27 id_rsa   
2.-rw-r--r-- 1 vineetmanohar vineetmanohar  411 2009-07-17 17:27 id_rsa.pub

id_rsa 包含了你的私钥。id_rsa.pub 中含有了你的公钥。

步骤 2/2:在远程机器上:认证无需密码的登陆

登陆到远程机器

1.ssh hostname -l username

1.The authenticity of host 'vineetmanohar.com (XXX.XXX.XXX.XX)' can't be established.   
2.RSA key fingerprint is 44.2b:93:ce:1b:1b:99:3a:6d:91:d1:50:aa:0d:87:40.   
3.Are you sure you want to continue connecting (yes/no)?

输入 yes 并回车
1.Warning: Permanently added 'vineetmanohar.com,XXX.XXX.XXX.XX' (RSA) to the list of known hosts.   
2.username@vineetmanohar.com's password:

输入密码,并回车

在远程机器上就创建了一个 .sh 目录,并在其中生成一个 .authorized_keys 文件。你需要拷贝你本机上的 'id_rsa.pub' 中的全部内容贴到远端服务器的 .authorized_keys 文件中。

01.mkdir .ssh   
02.chmod 700 .ssh   
03.cd .ssh   
04.touch authorized_keys   
05.chmod 600 authorized_keys  
06.# copy-paste the entire contents of your local machine's ~/.ssh/id_rsa.pub file in authorized_keys   
07.vi authorized_keys  
08.# logout   
09.exit


现在你就能登陆到远程服务器时不用输入你的密码了。

1.# type this command from your local machine   
2.ssh hostname -l username

SSH 可以无密码登陆了!现在,你也能进行 scp 操作而不用输入你的密码了。
责任编辑:Oo小孩儿 来源: 互联网
相关推荐

2023-02-21 10:07:23

2022-06-06 06:10:00

密码验证安全

2022-03-11 13:28:54

SSHLinux命令

2022-11-10 07:41:00

sshLinux

2013-08-12 14:23:43

SSH

2023-09-13 22:54:06

2015-10-21 11:03:21

ssh登录Linux

2022-10-08 11:31:30

KubernetesShellRoot

2014-06-24 09:24:24

密码身份验证

2015-09-22 09:46:46

iOS9漏洞

2022-07-23 13:31:25

PuTTY开源Linux

2016-01-25 13:03:21

2011-09-07 17:00:51

Ubuntussh

2010-01-05 10:11:23

ADO.NET连接池

2009-12-29 13:31:55

ADO连接ACCESS

2016-09-13 21:43:50

2022-04-10 22:50:20

SSHLinux会话

2019-04-08 08:50:02

2012-07-23 13:09:33

加密密码

2019-03-22 09:20:45

Linux命令sudo
点赞
收藏

51CTO技术栈公众号