macbook如何优雅的使用终端进行ssh远程访问

109 阅读1分钟

通过expect的脚本或者ssh证书,来实现便捷的ssh远程访问。

1.使用expect命令

brew install expect

1.1添加expect脚本,提供3个expect脚本

1.1.1 默认端口22

vim ~/.ssh/login.exp
#!/usr/bin/expect
 
set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
        "(yes/no)?"
        {send "yes\n";exp_continue}
        "password:"
        {send "[lindex $argv 3]\n"}
}
interact
expect ~/.ssh/login.exp root ip 密码

1.1.2 自定义端口

#!/usr/bin/expect
set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1] -p [lindex $argv 3]
expect {
       "(yes/no)?"
       {send "yes\n";exp_continue}
       "password:"
       {send "[lindex $argv 2]\n"}
}
interact
expect ~/.ssh/login.exp root ip 密码 端口

1.1.3 通过公钥登录

#!/usr/bin/expect
set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1] -i [lindex $argv 2]
interact
expect ~/.ssh/login.exp root ip 公钥路径

1.2 赋权

chmod +x ~/.ssh/login.exp

2.通过ssh公钥登录

2.1 服务端通过ssh-keygen生成公钥

复制id_rsa.pub文件里面的内容到本地 ~/.ssh/authorized_keys 文件里面,如果没有就创建一个。

配置 ~/.ssh/config 文件,如果没有就创建一个。 ~/.ssh/config 添加

Host 主机名称
HostName ip地址
User 用户名
ssh 主机名称 #就可以快捷方法

以上两步,选其中一种即可。

3.通过alias进行ssh快捷指令远程访问

可以编辑~/.zshrc或者~/.bash_profile

vim ~/.zshrc
vim ~/.bash_profile

在最下面添加

3.1 expect方式

# vps为快捷指令,可自定义
alias vps='expect ~/.ssh/login.exp root ip 密码'
alias vps2='expect ~/.ssh/login.exp root ip 密码 端口'
alias vps3='expect ~/.ssh/login.exp root ip 公钥路径'

3.2 ssh证书方式

# vps为快捷指令,可自定义
alias vps='ssh 主机名称'
:wq

保存 执行

source ~/.bash_profile

# 或者

source ~/.zshrc

试试快捷指令

vps

ssh访问成功!