使用SSH上傳檔案/編輯檔案至Docker container

在Docker裡要從外部傳檔案至container裡是一件麻煩的問題,可從volumes Mount point丟檔在從container下執令移至相對的地方。

但有相對快速的方式就是在container裡建置ssh,之後可透過winscp工具透過ssh丟檔或編輯檔案,不需透過指令。


主機Port Map Docker container Port(以Portainer為例

圖片裡的Host port 38622對應到container port 22


Debian內核為例

建置SSH

apt update
apt install openssh-server -y

設定SSH

需設置參數,否則會無法連線進來

echo "Port 22" >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

設置密碼

原root沒有密碼,因此需要設置

passwd root
# Enter new UNIX password:
# Retype new UNIX password:

最後重啟ssh

/etc/init.d/ssh restart

CentOS內核為例

建置SSH

yum install -y passwd openssl openssh-server

設定SSH

缺少了一些 key

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""

ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""

設置參數

echo "UsePAM no" >> /etc/ssh/sshd_config

設置密碼

passwd root
# Enter new UNIX password:
# Retype new UNIX password:

最後啟動ssh

/usr/sbin/sshd -D

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *