【备忘】创建SSH无密码登陆

有许多服务器要管理,常常要输入很大串密码,毕竟麻烦,这里转载解决办法。以供记录。

每次使用SSH登陆Linux服务器时都会提示输入密码,但是如果登陆的次数过多或者密码设置的比较复杂,那么将是一件非常麻烦的重复工作,我们不能将时间浪费在这些操作上,我们可以建立SSH信任关系,这样就可以让我们在登陆时不用输入密码了,下来就来看看具体的操作:

使用SSH命令连接一台服务器,默认情况下会提示我们输入密码:
liyawei:~ # ssh 192.168.4.249
Password:

创建密钥:
liyawei:~ # ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ae:1e:a6:49:b9:51:1e:27:bc:a6:7d:dd:bb:6b:1a:55 root@liyawei
liyawei:~ #

注意:输入上面的ssh-keygen命令后,不用输入任何信息,直接按回来就可以了,其中参数-t rsa是加密的类型,创建后的密钥在用户主目录中的隐藏目录.ssh中,

liyawei:~/.ssh # ls
authorized_keys id_rsa id_rsa.pub known_hosts
liyawei:~/.ssh #

id_rsa.pub是公钥,id_rsa是私钥,known_hosts保存着所有已发生连接服务器的信息,需要将公钥里的信息拷贝到登陆服务器用户主目录中的隐藏目录.ssh的文件authorized_keys中,

先看看*.pub文件的内容:
liyawei:~/.ssh # cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlC
GkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn
19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcb
uDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw== root@liyawei
liyawei:~/.ssh #

拷贝文件:
liyawei:~/.ssh # scp id_rsa.pub [email protected]:/root/.ssh/192.168.4.49
Password:
id_rsa.pub 100% 394 0.4KB/s 00:00
liyawei:~/.ssh #

scp命令和ssh命令都属于同一个包,前面的s都表示secure,这样无论在传输数据或是远程连接都是经过加密的,不用担心数据被直接截获。拷贝过去之后,先登陆到这台服务器上。
liyawei:~/.ssh # ssh 192.168.4.249
Password:
Last login: Sun Jul 8 11:15:18 2007 from 192.168.4.49
Have a lot of fun...
amd64:~ #

amd64:~ # cd .ssh
amd64:~/.ssh # ls
192.168.4.49 authorized_keys authorized_keys2 id_rsa id_rsa.pub known_hosts
amd64:~/.ssh #

192.168.4.49就是刚才传过来的公钥文件,为了保证文件的唯一和可管理性,建议用这个文件命名的方式,要不然信任关系建多了就不好管理了,将这个文件的内容复制到authorized_keys文件中:
amd64:~/.ssh # cat 192.168.4.49
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlCGkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcbuDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw== root@liyawei
amd64:~/.ssh # cat 192.168.4.49 >> authorized_keys

注意:要用“>>”这个符号,该符号表示追加,不会将以前的内容删掉,默认情况下,authorized_keys这个文件是不存在的,需要手动来创建,因为比较长不太好记忆,可以通过这个方法来查找:

amd64:~/.ssh # man ssh-keygen
显示帮助信息后,搜索"auth"这个关键字就可以了,下面就让我们重新登陆测试一下,先退出当前登陆的主机环境:

amd64:~/.ssh # exit

重新SSH连接:
liyawei:~/.ssh # ssh 192.168.4.249
Last login: Sun Jul 8 11:26:41 2007 from 192.168.4.49
Have a lot of fun...
amd64:~ #

如果配置和文件名的拼写都正确,那么将不会再提示输入密码的信息,根据我的经验,大多数配置失败都是因为authorized_keys的文件命令 有误,所以要多多注意。好了!配置到这里,SSH的信任关系就成功了,虽然很简单,但有很多概念性的东西需要我们掌握,如果想进一步了解,可以看看相关的 帮助文档,还有/etc/ssh目录中的SSH配置文件。

=================================================================================================

轻量级拷贝:ssh-copy-id -i id_dsa.pub 用户名@主机ip或者域名


你可能感兴趣的:(【备忘】创建SSH无密码登陆)