多机操作时为了不频繁的输入密码,为了提高效率我们可以通过私钥公钥对进行登录远程主机。 使用下列命令可以生成相应的私钥公钥对(id_rsa.work 和 id_rsa.work.pub) ss
多机操作时为了不频繁的输入密码,为了提高效率我们可以 通过私钥公钥对进行登录远程主机。
使用下列命令可以生成相应的私钥公钥对(id_rsa.work 和 id_rsa.work.pub)
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work -C "Key for Work stuff"
用如下命令上传公钥到服务器上
scp id_rsa.work.pub user@ip:/home
把公钥(id_rsa.work.pub)上传到服务器之上,并把内容添加到authorized_keys之中
cat /home/id_rsa.work.pub >> ~./ssh/authorized_keys
配置本机./ssh/config 文件内容
Host *.workhost.com IdentityFile ~/.ssh/id_rsa.work User root Host github.com IdentityFile ~/.ssh/id_rsa.github User git |
这样在登陆的时候,ssh会根据登陆不同的域来读取相应的私钥文件
ssh workhost.com 就可以登录至服务器上。
使用iTerm2让SSH免密码登录远程服务器
通过Profiles的设置打开就执行写好的脚本,免输入密码登录远程服务器。
脚本内容如下:
#!/usr/bin/expect -f set user <用户名> set host <ip地址> set password <密码> set timeout -1 spawn ssh $user@$host expect "*assword:*" send "$password/r" interact expect eof
保存到 ~/.ssh/expectfile
然后打开iTerm2的设置里,点开Profiles,左下角点+号新增一个配置文件,然后在Genernal->Command下选择 Command,在输入框里填入 expect ~/.ssh/expectfile
下次打开iTerm2时就可以选择你自己的配置文件,免密码登录服务器了,极大提升效率。