VScode远程连接服务器中docker过程及遇到的问题

VScode远程连接服务器中docker过程及遇到的问题

  • 1.VScode端ssh配置端口号与容器相同
  • 2.服务器开启SSH服务
  • 3.遇到的问题及解决:
    • 1.VScode连接时多次输入正确密码后报错:“Permission denied (publickey,password).”
    • 2.服务器端开启ssh服务报错: Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_ecdsa_key Could not load host key: /etc/ssh/ssh_host_ed25519_key
    • 3.服务器ssh启动后,VScode连接时报错:“ECDSA host key "ip地址" for has changed and you have requested strict checking”
    • 4.VScode多次输入密码正确,SSH无法登陆报错:“Received disconnect from ***: Too many /Permission denied, please try again.”

1.VScode端ssh配置端口号与容器相同

本地主机未安装ssh的可以安装Git(自带ssh)或安装openssh
服务器端可用 docker container list 命令,输出容器信息如下图所示,图中对应端口为8061
在这里插入图片描述
在VScode组件中搜索并安装Remote Development,如下图所示:
VScode远程连接服务器中docker过程及遇到的问题_第1张图片
进入组件改写相关信息:Host可自己随意取名,HostName 为服务器IP,User为服务器账户,Port为服务器docker端口
VScode远程连接服务器中docker过程及遇到的问题_第2张图片
VScode远程连接服务器中docker过程及遇到的问题_第3张图片

2.服务器开启SSH服务

首先进入容器,安装ssh服务端并开启ssh服务:

1. apt-get install openssh-server
2. /etc/init.d/ssh start

检查sshd服务是否正常启动:

1. ps -e|grep ssh

若需用ssh登入root账户,需要更改ssh配置:

1. vim /etc/ssh/sshd_config
#打开后添加:
PermitRootLogin yes

退出保存,再次执行 /etc/init.d/ssh restart 重启ssh
可使用passwd更改容器密码

配置完成后可通过VScode进行连接

3.遇到的问题及解决:

1.VScode连接时多次输入正确密码后报错:“Permission denied (publickey,password).”

遇到这样的情况,如果不是密码错误,并且服务器上的sshd服务已经开启,则需要修改服务器的配置文件/etc/ssh/sshd_config

PermitRootLogin yes
PubkeyAuthentication no
PasswordAuthentication yes

保存后重启sshd服务即可

sudo service sshd restart

参考链接:https://blog.csdn.net/BakerTheGreat/article/details/104300128

2.服务器端开启ssh服务报错: Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_ecdsa_key Could not load host key: /etc/ssh/ssh_host_ed25519_key

报错信息:
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
错误如图:
在这里插入图片描述
在命令行重新生成对应文件

ssh-keygen -t ras -b 2048 -f /etc/ssh/ssh_root_rsa_key
ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -b 256 -f /etc/ssh/ssh_host_ed25519_key

完成后使用 sudo service sshd restart 重启ssh服务
通过 ps -ef | grep ssh 可看到ssh服务正常启动
在这里插入图片描述
参考链接:https://www.cnblogs.com/xuyaowen/p/ssh-keygen.html

3.服务器ssh启动后,VScode连接时报错:“ECDSA host key “ip地址” for has changed and you have requested strict checking”

原因是我在2中对服务器端进行了改动,导致本机之前保存的ssh信息与服务器端不匹配。网上给出的答案大多是使用cmd命令行,输入:ssh-keygen -R 节点名 ,但我无法解决。
最终直接更改ssh保存的known_hosts文件内容,删除之前保存的服务器信息。
我的文件位置为: C:\Users\Administrator.ssh\known_hosts
打开内容如图所示:
在这里插入图片描述
直接删除保存之后通过VScode重新连接即可。

4.VScode多次输入密码正确,SSH无法登陆报错:“Received disconnect from ***: Too many /Permission denied, please try again.”

参考网上找到的几个答案,分析是由于服务器端口被占用,导致无法连接。可以退出重启进行尝试。

你可能感兴趣的:(linux,docker,vscode,ssh)