dockerのcentosはsshdサービスを開始する方法

1769 ワード

まず純粋なcentosコンテナを起動します
docker run -it --name=sample centos /bin/bash

そしてssh localhostを打つと次のエラーが見つかります.
bash: ssh: command not found
次はどうやって?
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
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を実行すれば成功します.