在shell脚本中调用sftp免密码的配置

来源:互联网 发布:中介者模式 java 编辑:程序博客网 时间:2024/06/07 08:34

需要编写一个定时任务脚本向ECS上传输文件,使用sftp命令时会有交互输入密码,可以通过下列步骤配置,执行脚本时不用输入密码:

前提:

本地机器:local代号A

远程机器:阿里云ECS代号B

B机器上的/etc/ssh/sshd_config中:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

确保以上配置项打开

1、在A机器上用户家目录下进入.ssh目录,没有则创建之

执行命令:ssh-keygen -t rsa

一路回车就可以了


2、将上一步骤生成的公钥文件id_rsa_pub拷贝到服务器B的用户家目录的.ssh目录下,同样,没有该目录,需要创建之

执行命令拷贝:scp /home/app/.ssh/id_rsa.pub test@120.27.142.151:/home/test/.ssh

这时还需要输入密码

3、到服务器B的用户家目录的.ssh目录下,

将id_rsa_pub名称修改为authorized_keys,将权限修改为644

.ssh目录权限修改为755

家目录权限为755

需要确保上面三个权限设置正确


如果有多个客户端,依次将客户端公钥附加到服务器的authorized_keys文件内即可。
# cat /tmp/id_rsa.pub >> authorized_keys

测试sftp是否可以免密码:

stfp test@ip

测试成功,这样sftp,scp等命令都可以免密码登录



0 0