先启动一个纯的 CentOS 容器
docker run -it --name=sample CentOS /bin/bash
然后打 SSH localhost 会发现如下错误.
bash: SSH: command not found
接下去就教你如何能够 SSH localhost.
- ,yum install openssh-server
- ,yum install openssh-clients
这时候再试一下 SSH localhost, 发现错误改变:
SSH: connect to host localhost port 22: Cannot assign requested address
说明 sshd 服务还没有开启. 用 ps -ef 也可以验证这一点.
由于是 docker 里面的 CentOS, 所以 service 和 systemctl 都不好用.
尝试手动运行 / usr/sbin/sshd
报如下错误:
- ,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
4,sshd: no hostkeys available -- exiting.
手动执行 / usr/sbin/sshd-keygen -A
再执行 / usr/sbin/sshd 成功.
为了免密码本机跳本机, 执行如下命令:
- ,SSH-keygen -t rsa -P '' -f ~/.SSH/id_rsa
- ,cat ~/.SSH/id_rsa.pub>> ~/.SSH/authorized_keys
- ,chmod 0600 ~/.SSH/authorized_keys
至此, 执行 SSH localhost 就能成功.
来源: http://www.bubuko.com/infodetail-3105193.html