有同事问我,如何不用密码登录 SSH,让我想起了我这一路的 SSH 登录方式变更。
一、最开始,我也是老老实实的输入密码。
ssh root@dev.markjour.com
顺便说一句 ssh 有一个 -p
参数,可以用来指定端口,默认值 22。
二、后来知道了使用密钥对登录。
生成公钥、私钥:
ssh-keygen -t rsa
在 ~/.ssh/config
中配置:
Host dev.markjour.com
User root
IdentityFile "~/.ssh/id_rsa"
如果是本地就直接 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
。
要是远程就 SSH 登录进去,修改之。
再后来又知道了一个工具 ssh-copy-id 可以方便的用来传递公钥。
ssh-copy-id -i ~/.ssh/id_rsa root@dev.markjour.com
顺便提一句:SSH 有安全策略,~/.ssh
权限应当设置是 700,~/.ssh/authorized_keys
的权限设置应该是 600。
三、sshpass
的时代。
sshpass 就是起到帮你输入密码的作用,不影响 ssh 的使用。
定义函数和别名:
function jj () {
sshpass -p '123456' ssh root@$1 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
}
alias logindev="jj dev.markjour.com"
至于参数的作用,自己找 “人”(man
)问问吧。