方案一: ssh-copy-id
https://juejin.im/post/5d4d4ce55188255d803f9479
使用ssh config
实现密码登录的方法是通过openssh
的ssh config
的功能。具体操作为~/.ssh/config,如果不存在,可以新建一个 然后vim ~/.ssh/config
1 | Host aliyun |
保存退出。这时在iTerm2中就可以输入ssh aliyun
,回车 然后输入密码。注意,这时候已经不用输入ssh [email protected],只要输入密码就登录上了
设置免密登录
方法是使用ssh-copy-id
功能,原理是将本机的密钥复制到远程要连接的机器上,从而授权连接。iterm终端输入:
(可选)如果你的机器没有生成过ssh密钥则输入,如果已经存在,则忽略这步
1
ssh-keygen
复制密钥到远程目的服务器
1
ssh-copy-id -i [email protected]
按提示输入一次密码,`ssh-copy-id`就会自动将刚才生成的公钥id_rsa.pub追加到远程主机的`~/.ssh/authorized_keys`后面了,这样以后的 ssh 连接都不用输入密码了。
设置后,连接试试看看效果
1
ssh aliyun
你会发现可以
一步命令
直接等上远程服务器了。但是还是要打开终端iTerm2。再方便一点的登录远程服务器就需要alfred了
方案二: 自定义 expect 脚本
可以在~/.ssh/下面写一个脚本,配置到 iTerm2 的 Profiles 里(当然放在其他地方也可以)。脚本内容如下:
1 | !/usr/bin/expect -f |
保存到~/.ssh/server-test
然后新建一个 profile:
Command 里填入 expect ~/.ssh/server-test
还可以配置快捷键
之后就可以使用快捷键 或:
快速连接服务器了。。。
方案三: 使用 sshpass
Mac 下,使用 sshpass 让 iterm2 支持多 ssh 登录信息保存
windows 里有个 Xshell 非常的方便好使,因为它能保存你所有的 ssh 登录帐号信息。MAC 下并没有 xshell,有些也提供这样的功能,但效果都不好。iterm2 是很好的终端,但却不能很好的支持多 profiles,当要管理的机器较多时,就比较麻烦了。好在它有 profiles 设置,只是不能保存 ssh 登录帐号及密码,它还提供了加载 profiles 时执行外部命令的功能,因此,这里就可以使用 sshpass 来帮它执行。
安装 iterm2
直接到官网下载安装: http://iterm2.com/,mac 上装软件,是件很轻松的事情
安装 sshpass
下载:http://sourceforge.net/projects/sshpass/files/ 解压后,进入 sshpass 目录,执行安装
1 | ./configure |
理论上不会出什么问题,安装好后,执行命令检查是否已经 OK
1 | sshpass -h |
准备密码
让 sshpass 使用 ssh 密码,需要先将密码保存在一个文件里,再通过 sshpass 读文件来获取密码,iterm2 就可以通过这样的命令来登录主机,密码文件很简单,取一个好名字,把密码写进去就可以了,没有别的任何东西,如,在用户目录的 sshpass 目录建一个名为 pass 的文件,里面写上主机密码:123456,文件地址为:/Users/用户名/sshpass/pass
配置 iterm2
打开 iterm 的 profiles 选项 添加一个新的 profile,其它没什么好配置的,主要是在 General 的 command 中选择使用 command,命令就是 sshpass 的执行命令,如:
1 | /usr/local/bin/sshpass -f /Users/fuwy/sshpass/pass ssh -p22 [email protected] |
/usr/local/bin/sshpass
是 sshpass 执行文件的路径,如果按默认情况安装,它肯定会出现在这个位置上
-f
是告诉 sshpass 加载文件
/Users/fuwy/sshpass/pass
就是要加载的文件,即前面建的密码文件
ssh -p22 [email protected]
是说用 ssh 链接,端口 22,root 帐号和 IP 地址
保存后,选择该 profile,就可以实际 ssh 登录。只是如果是本机第一次登录,是不会成功的,因为 ssh 登录需要你 yes 确认,会写文件到 hosts 里,所以第一次会直接失败,再来一次或是先在终端里用 ssh root@ip 来登录一次,就可以了。 这样,新建多个 profile,就可以实现管理登录了。
iterm2 和 xshell 比起来还是有很多不好使的地方,比如,无法直接看到主机 IP,有时候想复制一下不方便。tab 上的名称不能自定义,多开几个之后,不太好区分等等。但是有总比没有好,所以,还是不错的。