如何在 iTerm2 上管理 ssh 窗口
转载自:https://zhuanlan.zhihu.com/p/384827869
==============
配置登陆别名
在每一次登陆远程服务器的时候,往往都需要输入超长一段命令,要指定用户名、 ip及端口
ssh -p 22 root@192.168.56.200
如果要频繁的切换登陆,使用这种原始的方式,真的会让人崩溃。
其实你可以将上面那些信息都写到 ssh 的配置文件中
下面是我的配置文件,记录了三台服务器
cat ~/.ssh/config
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,这时候选择就行啦