以下以amazon 的镜像作为例子(基于yum,对于debian系列也会给出建议)
docker run -it -d -p 5678:22 amazon
centos/fedora
yum install openssh-server -y
debian/ubuntu
apt-get install openssh-server
passwd
如果容器内没有这个模块,可以安装之后再尝试
vi /etc/ssh/sshd_config
把这三行的注释去掉:
Port 22
PermitRootLogin yes
PubkeyAuthentication yes
这里可能会报错,提示没有 /etc/ssh/ssh_host_rsa_key
、/etc/ssh/ssh_host_ecdsa_key
、/etc/ssh/ssh_host_ed25519_key
这些文件
解决方案:
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
启动ssh服务
/usr/sbin/sshd -D &
在容器所在的主机上连接:
ssh -p 5678 [email protected]
远程机器连接:
ssh -p 5678 root@remote_host
这里和正常ssh免密钥登陆流程一样,这里仅仅提一下,详细可以bing下
ssh-copy-id -p 5678 root@remote_host
首先需要确保容器内包含 tar
这个工具,否则会报Fail to install VS-Code Server
这样的错误
我是在windows电脑上安装的vscode,只需要在vscode中安装remote-ssh
这个插件,然后就像连接普通远程服务器那样操作就可以了。
参考: