通过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访问成功!