iTerm2 上管理 ssh 窗口
配置登陆别名
在每一次登陆远程服务器的时候,往往都需要输入超长一段命令,要指定用户名、 ip及端口
$ ssh -p 22 root@192.168.56.200
如果要频繁的切换登陆,使用这种原始的方式,真的会让人崩溃。
其实你可以将上面那些信息都写到 ssh 的配置文件中
下面是我的配置文件,记录了三台服务器
$ cat ~/.ssh/config
Host master
HostName 192.168.56.200
User root
Port 22
Host node1
HostName 192.168.56.201
User root
Port 22
Host node2
HostName 192.168.56.202
User root
Port 22
有了这个配置后,我就可以使用别名(master
)很容易就登陆进来了
配置免密登陆
使用了别名后,你不再需要去记住和输入用户名、ip、端口了,但还是照常要输入密码
为了追求极致的用户体验,我们还想把这个密码给省掉,方法也很简单。
在 iTerm2 中使用 如下命令生成密码对,一路回车即可
$ ssh-keygen
完成之后,在你的 ~/.ssh/
目录下就会多出两个文件,带 pub
是公钥,另外一个是私钥
$ ll ~/.ssh/
-rw------- 1 MING staff 1675 3 4 23:11 id_rsa
-rw-r--r-- 1 MING staff 396 3 4 23:11 id_rsa.pub
然后将这个公钥使用下面这个目录直接拷贝到远程服务器上,这个命令还是很方便的
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.56.200
如果不想使用 ssh-copy-id,也可以手动来实现,这时候就比较复杂啦,这里也写一下
- 进入服务端上的家目录下的
.ssh
目录下(如果不存在,则创建一个,并确保权限为700
),查看有没有authorized_keys
文件,如果没有则创建一个,并确保权限为600
- 将客户端的公钥内容拷贝并追加到服务端的
authorized_keys
中。
再使用ssh命令登陆,就不需要密码啦~
配置 profile
通过上面两个步骤,你登陆服务器已经变得非常便利了,但仍旧有几点可以改进的
第一点:无法通过窗口来管理 ssh 会话。
你想啊,我每次想要在一个新的标签页打开一个 ssh 会话,就要先 ⌘ T 新建一个标签页,然后再使用 ssh
命令去登陆。
第二点:登陆频率少的机器记不得别名。
有一些机器可能几个月才登陆一次,时间这么长,别名肯定忘了,每次都要去 ~/.ssh/config
去查看下别名再输入,就很蛋疼了。
我这边推荐一个方法,来解决这两个痛点。
打开 iTerm2 的偏好设置,点一下 Profiles,然后参考一下我的配置,为两个机器设置一个 Profiles
设置完后,以后想要登陆,只要使用快捷键 ⌘ O 就可以打开 Profiles,这时候选择就行啦