sftp可以解决一个服务器与另外一个服务器的文件传输
首先sftp接续之前需要生成公钥和私钥,公钥和私钥是一种不对称的加密方式。
1.通过【ssh-keygen -t rsa】 : 生成私钥和公钥。其中【-t rsa】是rsa的加密方式。
2.按回车键继续往下执行
3.输入y,进行覆盖,然后输入密码和确认密码
4.然后在/root/.ssh的路径下回生成连个文件。id_rsa(私钥)和id_rsa.pub(公钥)。
id_rsa:本机生成的私钥复制到【sftp -oIdentityFile】进行私钥登录的路径(/share/temp)下并修改名字(id_rsa)
id_rsa.pub:从本机复制到另一台目标服务器的/root/.ssh/路径下,并把文件改名为authorized_key
5.执行 【sftp -oIdentityFile=/share/temp/id_rsa 用户名@被远程的服务器的ip】命令,该命令意味着通过私钥进行sftp登录。
# sftp login
/usr/bin/expect -c "
set timeout -1
spawn -oIdentityFile=/share/temp/id_rsa 用户名@被远程的服务器的ip
expect {
\"Are you sure you want to continue connecting (yes/no)? \" { send \"yes\r\"; exp_continue}
\"Enter passphrase for key*\" { send \"$passPath\r\" }
}
expect \"sftp>\"
send \"cd ${path1}\r\"
send \"get ${execDate}*.csv\r\"
# logOut
send \"exit\r\"
expect eof
" > ${shareLog}"sftp.log" 2> ${shareLog}"sftperr.log"