目的
- 通过windows terminal实现自动登陆云端linux机器。
方案一(推荐)
将客户端公钥放到服务器的授权文件中
- 首先在windows上生成ssh密钥对,如果已经生成过了,可以跳过这步。可以通过查看
C:\Users\{用户名}\.ssh
目录下是否有id_rsa
相关文件,来确认是否生成过。- 在
cmd
命令行执行ssh-keygen
命令,一直回车即可。
- 在
- 复制上一步生成的公钥,也就是
C:\Users\{用户名}\.ssh
目录下id_rsa.pub
文件的内容。追加到linux服务器的~/.ssh/authorized_keys
文件中。
登录并设置不要自动断开
- 在windows命令行执行
ssh {用户名}@{ip地址} -p {端口号}
,正常来说不需要输密码就能登录到服务器了。 - 上面登录之后,如果长时间不操作,连接就会自动断开。为了防止自动断开,我们可以在windows上的ssh配置文件
C:\Users\{用户名}\.ssh\config
中增加如下心跳配置:
Host *
ServerAliveInterval 40
使用windows terminal自动登录
- windows terminal的详细配置放法见
方案二
。我们只需要将配置文件
的命令行
设置为ssh {用户名}@{ip地址} -p {端口号}
即可,如下
方案二
- 需要windows安装了wsl
- wsl安装了
expect
- 将如下内容,保存为"autossh.ssh",放在wsl的路径下
/home/wuchw/private/autossh.sh
注意里面的wuchengwen 192.168.1.1 及22改成自己的账户、IP及端口号
- 给予可执行权限
chmod +x autossh.sh
#!/usr/bin/expect -f
spawn ssh [email protected] -p 22
expect {
"*yes/no/*" {
send "yes\r"; exp_continue }
"*password:" {
send "123456\n"};
}
interact
-
打开windows terminal的
设置
,选择添加配置文件
->新建空配置文件
-
其他选项根据实际情况自己填,命令行填写成如下:
-
配置完成,不要玩了点击右下角的
完成
-
然后点
windows terminal
的下拉框,就能看到配置的远端环境了,直接点击就可以自动登陆了
-
还存在一个问题,就是ssh连接,长时间不操作就会自己断开,为此我们可以修改客户端
/etc/ssh/ssh_config
文件,在末尾添加ServerAliveInterval 120
每120s向服务端发一次消息,防止断开。