目录
0.为什么要用跳班机登陆服务器?
1.VS Code插件安装及ssh安装
2.密码链接方式
1)添加ssh设置,设置主机
2)设置跳板机
Tips:可以直接通过窗口连接文件管理
3.密钥连接方式(更安全更方便)
1)mac版本
2)windows版本
3)问题排除
0.为什么要用跳板机登陆服务器?
因为这样可以使用vscode的file管理器,可以直接查看和修改files非常方便,登陆起来也只用输入跳板机的密码和目标机的密码。
1.VS Code插件安装及ssh安装
在左边栏点击像俄罗斯方块的logo,进行Remote SSH安装,安装完成后会出现俄罗斯方块下面的那个图标:一个电脑一个链接符号
Mac系统中默认是带有ssh的,windows需要打开cmd,输入
ssh -V
查看,如果没有安装,则需要安装OpenSSH:可以通过Windows设置安装。打开“设置”,选择“应用”,点击“应用和功能”,进入“可选功能”。在列表中找到“OpenSSH 客户端”并选中其旁边的复选框,点击“安装”按钮。
2.密码链接方式
这一点mac和win系统都一样
1)添加ssh设置,设置主机
点击新添加的那个图标,之后右边会出现变化,点击齿轮进行配置
上搜索栏会自动弹出提示,选择默认的第一个即可。
输入如下,host是你自己起的名字会显示在左边作为这个机器的代名,随便起即可,只要方便自己记忆,hostname就是你的服务器的ip了,可以是内外网,port默认是ssh的端口22(看情况,我的有公网路由就不一样),User就是你在服务登陆的用户名。
Host 50002 HostName xxx.xxx.xxx.xxx Port 22 User xxxxxx
设置好了如下,这是你的直连主机。设置完了进行保存。
之后就出现了,点击后可以输入密码登陆,密码输入的地方在上面搜索栏,也有可能因为安装的vscode版本不同在交互终端。
2)设置跳板机
如果你不需要登陆主机,可以直接来这一步,参考如上操作。输入如下:注意要改的地方是Usernamexxx和(跳板)主机的ip,-p 后是输入的端口,如果是默认端口22则不需要添加, ProxyCommand上面的user是你目标机器的用户名,ip和端口信息。
Host 3090via50002 HostName 192.168.5.37 Port 22 User zhf ProxyCommand ssh -p 50002 UserNamexxx@xxx.xxx.xxx.xxx -W %h:%p 2> /dev/null
设置完成后保存,刷新后远程栏出现3090via50002,这就是你通过跳板机连接的按钮。点击后输入两次密码:第一次密码是跳板机的密码,第二次密码是目标机的密码。
连接成功后点击左下角后出现终端命令行,点击终端即出现交互命令行
Tips:可以直接通过窗口连接文件管理
点击左边栏的资源管理器,又需要输入两遍密码才可以。第一次是要这样的。
后面在你的host出现了下拉框可以点击“在新窗口中连接”,即可实现输入一遍(2次)密码进行连接
3.密钥连接方式(更安全更方便)
1)mac版本
打开mac的本地命令行:Command+空格 输入终端/terminal
输入命令生成密钥对,一路回车执行
ssh-keygen -t rsa
将公钥复制到目标服务器上,其实这句话就是在你服务器的用户名下的.ssh文件夹内建立authorized_keys文件,并把id-rsa.pub里的内容复制到authorized_keys中
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 50002 UserName@xxx.xxx.xxx.xxx
拷贝时候需要输入服务器的用户username的密码
修改.ssh/config文件内容,如下(增加了认证文件一行)
Host 50002 HostName xxx.xxx.xxx.xxx Port 50002 User zhf IdentityFile ~/.ssh/id_rsa
连接第一次需要输入密码
重点:跳板机设置,在有以上50002设置的基础上
Host 3090via50002 HostName 192.168.5.37 Port 22 User zhf IdentityFile ~/.ssh/id_rsa ProxyCommand ssh -W %h:%p 50002
在目标机上拷贝authorized_keys文件,或者创建文件后复制跳板机的authorized_keys文件内容。
2)windows版本
参考mac直接把公钥复制到服务器的anthorized_keys下。其实也可以通过在服务器上使用生成公私钥,把服务器上的id_rsa的内容复制到本地的.ssh/id_rsa下即可。在windows下不需要添加IdentityFile,使用上面的密钥登录跳板机的ProxyCommand即可。
3)问题排除
权限问题:有可能是服务器上文件或文件夹不能正常访问,更改访问权限:
chmod 700 .sshchmod 600 .ssh/authorized_keys
sshd设置问题:需要用sudo用户修改
sudo vim /etc/ssh/sshd_config
在文件中添加(有关键字的话去掉#)
PubkeyAuthentication yesRSAAuthentication yesAuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
然后重启服务
sudo service sshd restart