密码的保存和保密是一件很麻烦的事,因为解密也是需要Key的,于是这就涉及到哲学中“先有鸡还是先有蛋”的问题。
那么问题来了,如果我们生产环境需要用到sFTP,密码如何保存呢?答案就是不用密码,把key种到对方服务器,建立互信关系。这个procedure同样适用于ssh帐号。
(生成private key 和public key。private key存在本地,public key 种在远程帐号。于是加密连接就靠这对key了。)
# 首先登陆客户端服务器。(用你跑job的account)
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen
(回车再回车,当然第二个回车之前你可以输入密码来保护你的Key)
chmod 700 ~/.ssh/id_rsa.*
# 在客户端服务器上, ssh 到sFTP服务器。
ssh ftp_account@ftp_server
(输入密码回车)
mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 700 authorized_keys
exit
# 在客户端服务器上,运行ssh-copy-id来复制到sFTP服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub ftp_account@ftp_server
(输入密码回车)
# 大功告成!
Now you can try to use `ssh ftp_account@ftp_server` without password input
try `sftp ftp_account@ftp_server`