在docker上搭建ssh

  参考资料:

  https://www.jianshu.com/p/c4d4ee6f3663

  https://blog.csdn.net/yalishadaa/article/details/69949022

  https://blog.csdn.net/m0_37961948/article/details/77894307

  写这篇文章的动机如下:我拉了一个docker,但是每次都从宿主机登录到docker看起来十分麻烦。于是我想先做一个端口映射,然后直接通过一个公网的IP加端口登录到docker中!下面是我的做法。

  1. 首先当然要拉一个docker,并且要做一个端口映射。ssh的默认端口是22,所以我们可以选择一个宿主机的端口XX,和docker容器的22号端口作一个映射。这样访问宿主机的XX端口时,访问的就是docker的22号端口。

  2. 完成第一步之后需要在docker里面安装ssh服务。这时我们需要安装openssh-server这个软件。

apt-get update    # 可选,更新apt-get的源
apt-get install openssh-server

  安装完成后使用 service ssh start 命令打开ssh服务。会显示下面字样:

   * Starting OpenBSD Secure Shell server sshd                                                       [ OK ]

  3. 完成第2步之后,我们就可以尝试使用ssh登陆宿主机的XX端口了,第一次登陆需要将主机添加到信任host里面,但是!它会问你密码?这个密码是啥呢?我登录也没用密码啊。别急,还需要下面几个操作。

  1)使用passwd命令设置登陆密码

  2)vim /etc/ssh/sshd_config

  将PermitRootLogin的值改为yes

  3)vim /etc/ssh/sshd_config

  将PasswordAuthentication的值改为yes

  完成以上三步之后 service restart ssh重启ssh服务,再次登陆!是不是可以啦!


 

  之前写了这个使用密码登录容器内ssh的方法,下面再介绍一下如何使用公私钥认证的方法登录容器。

  参考资料:

  https://blog.csdn.net/li528405176/article/details/82810342

  https://www.runoob.com/w3cnote/set-ssh-login-key.html

  首先是生成公私钥对,这个过程在客户端上进行:

ssh-keygen -t rsa

  生成的公钥会放在~/.ssh/id_rsa.pub

  这个公钥我们需要上传到服务器,cat到服务器的~/.ssh/authorized_keys

[root@host .ssh]$ cat id_rsa.pub >> authorized_keys

  然后就是ssh的配置了:

1 编辑 /etc/ssh/sshd_config 文件,进行如下设置:

RSAAuthentication yes
PubkeyAuthentication yes

2 另外,请留意 root 用户能否通过 SSH 登录:

PermitRootLogin yes

3 当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:

PasswordAuthentication no

4 最后,重启 SSH 服务:

[root@host .ssh]$ service sshd restart
posted @ 2020-11-12 16:21  思念殇千寻  阅读(1602)  评论(0编辑  收藏  举报