最近在搭openstack,因为经常ssh,所以要搞一下这个。之前搭hadoop的时候已经搞过,只是当时没有记录。这次记录下来,方便以后使用。
1. 生成public/private key pair
ssh-keygen -t rsa
(Enter your id_rsa save path)
(Passphrase)
(Confirm Passphrase)
这里注意,如果要配置对多个节点的无密钥ssh,记得一定要修改id_rsa的存储路径。
2. 发送public key
ssh-copy-id -i <your public key path> <remote user@host>
ssh-copy-id
就是使用本地可用的key来完成远程登录的认证过程。参数-i
表示使用认证文件,也就是我们保存public key
的文件。其实这个命令的作用,应该就是将public key
追加到远程主机的~/.ssh/authorized_keys
里面。
3. 一些小问题
3.1. 关于 “Warning: the ECDSA host key for ‘xxx’ differs from the key for the IP addres…”。
ssh远程host时引发了这个Warning。引起这个Warning的原因,是远程host的ECDSA签名和本地保存的对应的ECDSA不一致。笔者玉道这个问题的原因是远程登录的这台VM是重新Clone的,但是还是原来的IP。
解决方案很简单。删除~/.ssh/known_hosts
即可。