一个支持密码登录 ssh 的脚本,支持阿里云堡垒机和 jumpserver 堡垒机,同时兼容原生 SSH 密钥登录主机。
nssh -l
Available hosts:
--------------------------------------------------------
NUM HOST ALIAS LOGIN TYPE
--------------------------------------------------------
1) test-pass [Password]
2) pre [Jumpserver]
3) online [Aliyun 2FA]
4) test [Key-based (Native)]
--------------------------------------------------------
Enter number to connect (or 'q' to quit):nssh
与原生 SSH 密钥登录主机完全一样。
nssh
配置示例:
Host test
HostName 10.10.10.10
Port 10022
User root兼容原生 SSH 配置文件。
配置示例:
# 直接使用密码登录的主机
Host test-pass
HostName 10.10.10.11
Port 10022
User root
Pass 123456
LoginType password
# 使用密码登录jumpserver类型堡垒机
Host pre
HostName 10.10.10.12
Port 10022
User root
Pass 123456
LoginType jumpserver
# 使用密码登录阿里云带动态验证码的堡垒机
Host online
HostName 10.10.10.13
Port 10022
User root
Pass 123456
LoginType bastion_2fa_ali配置项说明:
- Pass: 登录密码
- LoginType: 登录方式,可选值,密码直接登录:
password、jumpserver 堡垒机:jumpserver、阿里云堡垒机:bastion_2fa_ali
因为不同的堡垒机登录方式不同,如果需要加入新的登录方式支持,需要根据服务器返回,进行自定义开发。
- 安装
expect
sudo apt-get install expect- 将本项目下的脚本放到
/usr/local/bin目录(或其他存在于PATH的目录)下并赋予执行权限
chmod +x nssh
chmod +x login_password.exp
chmod +x login_jumpserver.exp
chmod +x login_bastion_2fa_ali.exp- 配置
~/.ssh/config和~/.ssh/nssh_config的主机 - 运行
nssh <hostname>即可登录主机
nssh -h显示帮助信息nssh -l显示已配置的主机列表