SSH公钥、私钥的设置

如果在两台相互信任,其实步骤挺简单,假设要从主机1上执行,ssh,scp操作。

一:在主机1上执行下列操作:

1、/user1/.ssh/ 目录下执行:

2、一路默认回车,生成 id_rsa.pub 文件

3、cat idrsa.pub >> authorizedkeys

二、在主机2上执行下列操作:

1、拷贝主机1上的authorizedkeys文件到 /user2/.ssh/ 目录下
scp authorized
keys root@host2:/root/.ssh/

2、更改目录访问权限:

这是linux的安全要求,如果权限不对,自动登录将不会生效(ps:对于目录644与600的效果差不多,没有x权限便不能进入目录)

三、至此公钥、私钥就设置好了

NOTE:

首先 ssh-keygen -t rsa命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码。可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制。而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被了配了(私钥被人复制)。当然, 这种例子只是方便理解罢了,拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了。所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开"server, 再以root的身分登录, 即使现在root密码已经更改!
如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen命令可以随意更改钥匙对的名字, 最好取容易识别的文件名,比如:

这样私钥和公钥的名字分别就是:
idrsa192.168.10.1  和 idrsa192.168.10.1.pub

然后将 idrsa192.168.0.1.pub 文件的内容, 追加到服务器的~/.ssh/authorized_keys文件中,

最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:
# ssh -i /root/.ssh/id_rsa_192.168.10.1 192.168.10.1

如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了。scp也是一样。

补充:
拷贝公钥文件到服务器上这个过程可以用ssh-copy-id命令来完成

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: