Linux上如何将ssh私钥复制到另一台机器使用

举个例子:
现在有三台服务器,分别为test1,test2,test3,我在test2服务器上创建了ssh的密钥对(rsa类型),我打算将公钥传到test3,将私钥复制到test1,然后使用test1服务器连接test3服务器,这三台机器上分别有用户:test1,test2,test3

操作如下:
1.在test2服务器创建ssh密钥对(rsa类型)
[root@test2 ~]# ssh-keygen

2.将公钥传到test3
[root@test2 ~]# cd .ssh/
[root@test2 ~/.ssh]# ssh-copy-id test3@test3服务ip

3.将私钥复制到test1服务器上,这里使用的使用scp传送
[root@test2 ~/.ssh]# scp id_rsa test1@test1服务器ip

4.在test1服务器上使用ssh-add命令将test2服务器传过来的私钥id_rsa添加到密钥代理
[root@test1 ~]# ssh-add ~/.ssh/id_ras
出现报错:
Could not open a connection to your authentication agent
翻译成中文就是"无法打开与身份验证代理的连接"的意思

解决:
先执行ssh-agent bash命令,然后再执行ssh-add ~/.ssh/id_ras,如下:
[root@test1 ~]# ssh-agent bash
[root@test1 ~]# ssh-add ~/.ssh/id_ras
Enter passphrase for id_rsa: ---->提示我们输入私钥密码,输入正确的密码之后就可以正常免密登录test3服务器了

私钥密码:

1.是私人(个人)钥匙密码,不是证书开发者密码
2.这个密码是用作启用、导出、导入时的保护密码。
3.只有知道这个密码,才可以重新导入这个证书来使用,避免其他人乱用

需要注意的是.ssh中文件的权限非常重要,权限错了否则不能正常登陆!

如何ssh免秘钥登录在这里就不提了,网上很多,这里说明下,设置免秘钥登录后,仍然不能免秘钥登录的问题。

因为sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x、777,需要保障other用户不能有w权限
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600

例如:

.ssh目录权限

drwx------   2 root root       4096 Apr  9  2015 .ssh

.ssh目录下文件的权限

-rw-r--r--   1 root root 1609 Mar  2 14:05 authorized_keys
-rw-------   1 root root 1675 Dec 12  2014 id_rsa
-rw-r--r--   1 root root  405 Dec 12  2014 id_rsa.pub
-rw-r--r--   1 root root 4701 May 25  2016 known_hosts

这里的权限指的是对端的权限,如从A主机 通过ssh连接 B主机,B主机权限按照上边的设置进行。

猜你喜欢

转载自blog.csdn.net/yufeng1108/article/details/109692359