ssh连接docker+clion连接docker

1. 启动容器

docker run -td --privileged  --name="orb3ssh1"     --gpus=all     -e "DISPLAY=$DISPLAY"     -e "QT_X11_NO_MITSHM=1"     -v "/tmp/.X11-unix:/tmp/.X11-unix:rw"     -e "XAUTHORITY=$XAUTH"     -e ROS_IP=127.0.0.1     --cap-add=SYS_PTRACE     -v `pwd`/Datasets:/Datasets     -v /etc/group:/etc/group:ro     -v `pwd`/ORB_SLAM3:/ORB_SLAM3 -p 10132:22 orb3:v1 /bin/bash

重要的就一个参数: -p 10132:22(将主机的10132端口映射到docker的22端口)

orb3ssh1是可自定义的容器name,进入时要用

进入容器

docker exec -it orb3ssh1 bash

2. 修改密码

passwd

输入密码,再确认密码即可

3. 安装openssh-server和openssh-client

我的问题主要出现在这一步,安装openssh-server时报错

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
debconf: delaying package configuration, since apt-utils is not installed
dpkg: unrecoverable fatal error, aborting:
 unknown group 'geoclue' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2

解决:参考链接

sudo rm /var/lib/dpkg/info/openssh-server*
sudo dpkg --configure -D 777 openssh-server
sudo apt -f install

第二步的结果:

ssh连接docker+clion连接docker

第三部的结果:

ssh连接docker+clion连接docker

4. 修改SSH配置文件以下选项

 如果已经存在了/etc/ssh/sshd_config文件,则可以跳过第3步

修改:

vim /etc/ssh/sshd_config

在最后添加一行:

PermitRootLogin yes

vim操作:输入i可进入INSERT模式,然后进行更改,ESC键退出,再输入:wq保存退出(注意有冒号)

5. 重启ssh服务

/etc/init.d/ssh restart

我这里报错:

Privilege separation user sshd does not exist

解决:

vim /etc/passwd

添加一行(如果添加下面这行没有效果,参考链接Privilege separation user sshd does not exist)

sshd:x:109:65534::/var/run/sshd:/usr/sbin/nologin

解决后,重启ssh服务

/etc/init.d/ssh restart

再退出容器

exit

6. 主机通过ssh连接docker

ssh root@127.0.0.1 -p 10132

输入yes

输入刚刚在第2步设置的密码

连接成功,恭喜!!!

7. clion连接docker

我参考的链接是:Clion与Docker的C\C++调试环境第3点之后的内容,操作下来,完全一致.

上一篇:CentOS8开启SSH服务


下一篇:腾讯云服务器ssh登陆频繁断开链接的解决方案