SCP和SFTP不用输入密码的信任公钥方法攻略
2016-10-14 15:18
357 查看
大多对密级要求较高的企业单位都使用SFTP方式传输,但是SFTP传输必须输入密码,对于通过脚本定时传输文件非常不方便。
信任公钥(对称公钥)方法解决了每次都输入密码的问题:使用客户端生成密钥钥对,将公钥添加到服务器的信任公钥表中,即完成了服务器对客户端信任的添加,再次使用SCP或者SFTP则不需要密码。
两台HP Unix服务器
SecureCRT
1
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File TransferProtocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
END
1
进入系统家目录
首先需要在家目录创建.ssh文件夹
# ll –a 查看隐藏目录,默认此目录里如果没有.ssh隐藏目录,则需要手动创建
# mkdir .ssh 新建.ssh文件夹
2
#cd .ssh 进入.ssh目录
#ssh-keygen -t rsa 执行创建密钥对命令
Generating public/private rsa key pair.
Please be patient.... Key generation may take a few minutes
Enter file in which to save the key (/home/ap/appnms/.ssh/id_rsa):
# 按回车保存为: //.ssh/id_rsa,即当前用户的私钥
Enter passphrase (empty for no passphrase):
# 按回车,表示读取密钥时不需要密钥的密码
Enter same passphrase again:
# 确认密钥的密码,必须和上面的输入相同
Your identification has been saved in /home/ap/appnms/.ssh/id_rsa.
# 私钥保存信息
Your public key has been saved in /home/ap/appnms/.ssh/id_rsa.pub.
# 公钥保存信息
The key fingerprint is:
31:03:78:64:4f:8e:9d:a9:31:bf:38:5d:1a:79:08:e6 appnms@T254N0V4
# 密钥指纹
The key's randomart image is:
+--[ RSA 2048]----+
| o+ . |
| ...B o |
| .* X |
| o * * |
| E S o |
| o * |
| o + |
| . |
| |
+-----------------+
3
把.ssh目录下的公钥文件:/当前用户home目录/.ssh/id_rsa.pub文件传输到服务器上。
#scp/home/ap/appnms/.ssh/id_rsa.pub appmon@128.192.141.129:/ultranms/appmon/.ssh
此时仍需要输入密码,革命即将成功:)
END
1
登录服务器查看用户家目录:
#cat /etc/passwd | grep appmon
appmon:tAceUEMuTYB9Q:116:20::/ultranms/appmon:/sbin/sh
通过检查home目录为/ultranms/appmon 家目录的权限必须是755
2
# cd /.ssh 进入到.ssh目录 .ssh目录权限必须是755或者700
# cp id_rsa.pub authorized_keys 第一次添加时将公钥重命名为authorized_keys
# chmod 644 authorized_keys 公钥文件的权限必须是644
如果有多个客户端,依次将客户端公钥附加到服务器的authorized_keys文件内即可。
# cat /tmp/id_rsa.pub >> authorized_keys
END
使用sftp访问测试是否配置成功,成功的现象是访问不需要输入密码-_—
#sftp appmon@128.192.141.129
如果不需要输入密码则公钥设置成功
只有第一次连接需要输入YES确认:
The authenticity of host '128.192.141.129 (128.192.141.129)' can't be established.
RSA key fingerprint is 91:b8:8e:85:8a:33:da:6e:04:a0:96:4d:9a:bb:57:67.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '128.192.141.129' (RSA) to the list of known hosts.
Connected to 128.192.141.129.。
SFTP测试成功了,下面测试一下文件传输
2
# scp /需要上传源文件的绝对路径 目的用户名@IP地址:目的目录
示例:#
scp /home/ap/appnms/.ssh/id_rsa.pub appmon@128.192.141.129:/ultranms/appmon/.ssh
id_rsa.pub 100% 397 0.4KB/s 0.4KB/s 00:00
大功告成!
END
密匙样式:ssh-dss 开头,username@ip结尾
拷贝即可;把此密匙发送给目标IP的密匙文件中,并对权限进行修改为600;
即可通过sftp -oPort=$PORT $USERNAME@$IP每次免密码登录;
sftp常用的命令:
cd 路径 更改到远程目录的路径
lcd 路径 更改到本地目录的路径
chgrp group path 将文件path的组更改为group
chmod mode path 将文件path的权限更改为mode
chown owner path 将文件path的属主更改为owner
exit 退出 sftp
help 显示这个帮助文本
get 远程路径 下载文件
ln existingpath linkpath 符号链接远程文件
ls [选项] [路径] 显示远程目录列表
lls [选项] [路径] 显示本地目录列表
mkdir 路径 创建远程目录
lmkdir 路径 创建本地目录
mv oldpath newpath 移动远程文件
open [用户@]主机[:端口] 连接到远程主机
put 本地路径 上传文件
pwd 显示远程工作目录
lpwd 打印本地工作目录
quit 退出 sftp
rmdir 路径 移除远程目录
lrmdir 路径 移除本地目录
rm 路径 删除远程文件
lrm 路径 删除本地文件
symlink existingpath linkpath 符号链接远程文件
version 显示协议版本
一段shel链接sftp代码:
sftp -oPort=$PORT $USERNAME@$IP <<EOF
cd $FTP2DIR
mkdir $DATA_DATE
cd $DATA_DATE
put $EXPORT_LOCAL_DIR/$data_file_name
put $EXPORT_LOCAL_DIR/$verf_file_name
exit
close
bye
EOF
信任公钥(对称公钥)方法解决了每次都输入密码的问题:使用客户端生成密钥钥对,将公钥添加到服务器的信任公钥表中,即完成了服务器对客户端信任的添加,再次使用SCP或者SFTP则不需要密码。
工具/原料
两台HP Unix服务器SecureCRT
基础知识普及
1sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File TransferProtocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
END
客户端生成密钥对,分发公钥
1进入系统家目录
首先需要在家目录创建.ssh文件夹
# ll –a 查看隐藏目录,默认此目录里如果没有.ssh隐藏目录,则需要手动创建
# mkdir .ssh 新建.ssh文件夹
2
#cd .ssh 进入.ssh目录
#ssh-keygen -t rsa 执行创建密钥对命令
Generating public/private rsa key pair.
Please be patient.... Key generation may take a few minutes
Enter file in which to save the key (/home/ap/appnms/.ssh/id_rsa):
# 按回车保存为: //.ssh/id_rsa,即当前用户的私钥
Enter passphrase (empty for no passphrase):
# 按回车,表示读取密钥时不需要密钥的密码
Enter same passphrase again:
# 确认密钥的密码,必须和上面的输入相同
Your identification has been saved in /home/ap/appnms/.ssh/id_rsa.
# 私钥保存信息
Your public key has been saved in /home/ap/appnms/.ssh/id_rsa.pub.
# 公钥保存信息
The key fingerprint is:
31:03:78:64:4f:8e:9d:a9:31:bf:38:5d:1a:79:08:e6 appnms@T254N0V4
# 密钥指纹
The key's randomart image is:
+--[ RSA 2048]----+
| o+ . |
| ...B o |
| .* X |
| o * * |
| E S o |
| o * |
| o + |
| . |
| |
+-----------------+
3
把.ssh目录下的公钥文件:/当前用户home目录/.ssh/id_rsa.pub文件传输到服务器上。
#scp/home/ap/appnms/.ssh/id_rsa.pub appmon@128.192.141.129:/ultranms/appmon/.ssh
此时仍需要输入密码,革命即将成功:)
END
服务器端添加信任公钥
1登录服务器查看用户家目录:
#cat /etc/passwd | grep appmon
appmon:tAceUEMuTYB9Q:116:20::/ultranms/appmon:/sbin/sh
通过检查home目录为/ultranms/appmon 家目录的权限必须是755
2
# cd /.ssh 进入到.ssh目录 .ssh目录权限必须是755或者700
# cp id_rsa.pub authorized_keys 第一次添加时将公钥重命名为authorized_keys
# chmod 644 authorized_keys 公钥文件的权限必须是644
如果有多个客户端,依次将客户端公钥附加到服务器的authorized_keys文件内即可。
# cat /tmp/id_rsa.pub >> authorized_keys
END
测试传输
使用sftp访问测试是否配置成功,成功的现象是访问不需要输入密码-_—#sftp appmon@128.192.141.129
如果不需要输入密码则公钥设置成功
只有第一次连接需要输入YES确认:
The authenticity of host '128.192.141.129 (128.192.141.129)' can't be established.
RSA key fingerprint is 91:b8:8e:85:8a:33:da:6e:04:a0:96:4d:9a:bb:57:67.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '128.192.141.129' (RSA) to the list of known hosts.
Connected to 128.192.141.129.。
SFTP测试成功了,下面测试一下文件传输
2
# scp /需要上传源文件的绝对路径 目的用户名@IP地址:目的目录
示例:#
scp /home/ap/appnms/.ssh/id_rsa.pub appmon@128.192.141.129:/ultranms/appmon/.ssh
id_rsa.pub 100% 397 0.4KB/s 0.4KB/s 00:00
大功告成!
END
客户端脚本与crontab
密匙样式:ssh-dss 开头,username@ip结尾拷贝即可;把此密匙发送给目标IP的密匙文件中,并对权限进行修改为600;
即可通过sftp -oPort=$PORT $USERNAME@$IP每次免密码登录;
sftp常用的命令:
cd 路径 更改到远程目录的路径
lcd 路径 更改到本地目录的路径
chgrp group path 将文件path的组更改为group
chmod mode path 将文件path的权限更改为mode
chown owner path 将文件path的属主更改为owner
exit 退出 sftp
help 显示这个帮助文本
get 远程路径 下载文件
ln existingpath linkpath 符号链接远程文件
ls [选项] [路径] 显示远程目录列表
lls [选项] [路径] 显示本地目录列表
mkdir 路径 创建远程目录
lmkdir 路径 创建本地目录
mv oldpath newpath 移动远程文件
open [用户@]主机[:端口] 连接到远程主机
put 本地路径 上传文件
pwd 显示远程工作目录
lpwd 打印本地工作目录
quit 退出 sftp
rmdir 路径 移除远程目录
lrmdir 路径 移除本地目录
rm 路径 删除远程文件
lrm 路径 删除本地文件
symlink existingpath linkpath 符号链接远程文件
version 显示协议版本
一段shel链接sftp代码:
sftp -oPort=$PORT $USERNAME@$IP <<EOF
cd $FTP2DIR
mkdir $DATA_DATE
cd $DATA_DATE
put $EXPORT_LOCAL_DIR/$data_file_name
put $EXPORT_LOCAL_DIR/$verf_file_name
exit
close
bye
EOF
相关文章推荐
- SCP和SFTP不用输入密码的信任公钥方法攻略
- SCP和SFTP不用输入密码的信任公钥攻略
- 在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题
- 在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题
- 在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题
- 在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题
- 在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题
- scp在Linux主机之间copy不用输入密码
- scp在Linux主机之间复制不用输入密码
- 使scp不用输入密码
- 使ssh scp sftp不用输入密码
- 如何让scp执行一次后不用每次都输入密码
- 如何使用scp、ssh等命令不用手动输入密码
- ssh/scp不需要输入密码的方法
- 使用ssh或scp无需输入密码方法
- scp在Linux主机之间复制不用输入密码
- Linux/Ubuntu sudo不用输入密码的方法
- scp不用输入密码
- scp在Linux主机之间复制文件/目录不用输入密码
- 关于两台机器之间scp不用输入密码