SFTP免密码登录操作方法1) 登陆服务端主机,在当前用户根目录执行(以RSA算法为例)如下命令:
ssh-keygen –t rsa
屏幕显示内容均可直接以回车使用默认项,此时在$home/.ssh目录下生成I d_rsa私钥(private key)及id_rsa.pub公钥(public key)两个文件。
2) 将服务端的$home/.ssh/id_rsa.pub文件上传到客户端机的$home/.ssh目录下通过scp命令传到 客户端方法二 ssh-copy-idssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.3 ligh@remote-host‘s password: Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in: .ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.
就可以直接连了
方法一 scp $home/.ssh/id_rsa.pub username@client_ip:$home/.ssh
在客户端机$home/.ssh目录下执行命令:
cat id_rsa.pub >> authorized_keys
3)将客户端各主机信息添加到$home/.ssh/known_hosts文件中例如: 服务端IP是10.45.7.154 客户端为:10.45.7.61
在服务端执行 sftp usename@10.45.7.61命令提示如下:
qdgcp@mdw:~/.ssh> sftp qmdb@10.45.7.61Connecting to 10.45.7.61...The authenticity of host '10.45.7.61 (10.45.7.61)' can't be established.RSA key fingerprint is ea:53:c8:cf:24:31:18:d8:47:68:8d:18:65:a4:e8:20.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '10.45.7.61' (RSA) to the list of known hosts.
这样,在服务端的$home/.ssh/目录会出现一个known_hosts文件,客户端主机信息将添加到这个文件中。
按上述方法实现服务端主机和客户端主机间的公私钥配对后,从服务端主机向客户端主机就可以实现同一用户名的sftp自动安全登陆操作了。
注意: 如果我在服务端使用root用户登录,并且执行了
sftp oracle@10.45.7.61 或者 ssh oracle@10.45.7.61
这个时候 在A上执行 ssh oracle@10.45.7.61是可以自动登录的, 但是如果 仅仅 ssh 10.45.7.61 ,这个时候linux会自动获取当前登录用户,并赋予到 这个命令上,此时会变成 当前用户@10.45.7.61 ,但由于我们在root用户下执行的免密码登录,这个时候变成了oracle用户,虽然也是 ssh oracle@10.45.7.61,但是用户变了,所以同样的也不能自动登录。 如下图所示
退出ssh的话 输入 logout即可 ,如果退出sftp ,输入exit命令即可。
说明:在配置ssh自动传输的时候注意,
.ssh目录的属主、属组使用当前用户与用户组,.ssh目录的权限请保持700,authorized_keys的权限为644,id_rsa的权限为600,id_rsa.pub的权限为644,同时检查用户$HOME目录权限必须为755。 |