平时在Mac上使用iTerm2登录远程服务器时,总是需要手动输入ssh命令以及密码,比较麻烦。
再加上如果平时有多个远程服务器在使用,就意味着需要记住多组host地址和密码,就更麻烦了。
于是,便在网上找了找有没有什么方法可以让这个过程不那么麻烦,变得简单点,可以“无脑”操作,甚至完全自动化。
经过一番搜索,整理如下。
大致步骤
- 在.ssh/目录下创建配置文件
- 在配置文件中增加命令
- 配置iTerm2的profile
- 尽情使用
具体步骤
1.在.ssh/目录下创建配置文件
# 打开.ssh目录
cd ~/.ssh/
# 使用vim创建并进入文件,也可使用其他创建文件命令,如touch
# 文件名建议设置成描述用途的单词
vim XXX
2.在配置文件中增加命令
在文件里面输入如下命令
#!/usr/bin/expect -f
#文件一定要以 #!/usr/bin/expect -f 开头
#设置ip地址、用户名、端口号、密码等
set host XXXX
set user XXXX
set port XXXX
set password XXXX
set timeout -1
#一系列自动化登录的命令。
spawn ssh $user@$host
expect "*password:*"
send "$password\r"
interact
expect eof
简单解释下上面的一些命令。
-
set host XXXX
表示设置一个名为host,值为XXXX的变量。可以使用
$
取到该变量的值。 -
spawn ssh $user@$host
表示使用
spawn
打开ssh
这个程序,并取前面设置好的用户名和主机地址作为参数。spawn
这个命令可以用来运yy行任何交互式脚本或程序,非常强大。 -
expect "*password:*"
expect
命令表示期待读取到什么字符。后面字符中的*
表示通配符。用过ssh的小伙伴应该都知道,当输入ssh之后,会要求你要输入密码。 -
send "$password\r"
send
命令表示发送。这里是将预设置的password变量发送到程序中。 -
interact
这个命令用来执行交互动作。
3.配置iTerm2的profile
打开iTerm2的Preferences,根据以下序号配置,如下图
步骤说明:
-
选择profiles
-
点击+号按钮会出现New Profile
-
填上想要设置的Name名称
-
在下拉框中选择Command
-
在右边的框框中填写配置文件的位置。
每一个profile都可以看作一个模版,里面可配置你想要在打开iTerm时执行的任何命令。上图中前面带⭐️名为Defaul的profile,其实就是一个默认的模版。
4.尽情“无脑”使用吧
所有的配置完毕,回到iTerm2的主界面。
如上图,第一步是点击iTerm2菜单栏中的Profiles,会出现下拉选项,显示出所有你已经配置的profile。第二步,选中你想要使用的对应的profile就OK了。
结语
现在,终于不用每次使用i Term2登录远程服务器时,都需要使用ssh命令输入主机地址和密码了。
世界,变得更简单了那么一点!
也许,还有更简单的方法,或者有好用的软件,如果你知道,欢迎留言推荐给我!