用OpenSSH实现Windows和Linux的文件安全传输

考虑到windows和linux系统间的文件实现安全传输,就准备采用ssh来实现,OpenSSH有windows和linux的实现并免费,当然要用它了。

本例中使用windows(ip:192.168.1.25)来做客户端,linux(ip:192.168.1.26)来做服务器。在linux中安装ssh服务,这里就不讲了。

1.下载OpenSSH : http://sshwindows.sourceforge.net/ 并安装。默认安装目录为C:\Program Files\OpenSSH

2.修改/home(根目录),在注册表中修改
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home]

“native”=”C:\Program Files\OpenSSH\\home”

3.在C:\Program Files\OpenSSH 下建立目录 home 和username
cd C:\Program Files\OpenSSH
mkdir home
mkdir home\Administrator
mkdir home\Administrator\.ssh

4.生成密钥
cd C:\Program Files\OpenSSH\bin
ssh-keygen.exe -d
在C:\Program Files\OpenSSH\home\Administrator\.ssh目录生成两个文件
id_dsa 和 id_dsa.pub ,后缀.pub的就是公钥

5.拷贝id-dsa.pub到linux服务器上,可以通过winscp来拷贝,是一个很好的windows客户端工具。

6.在linux服务器上执行命令
cat ~/.ssh/id_dsa.pub >> authorized_keys

7.修改sshd配置文件
vi /etc/ssh/sshd_config

#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

的注释去掉,采用authorized_keys文件的验证用户身份

8.重启sshd服务
#service sshd restart

9.到windows下采用scp 和ssh就可以登陆并拷贝文件了,不需要在输入密码,实现了文件的安全传输。

>ssh.exe root@192.168.1.26 #登陆到linux服务器了
>scp.exe somefile root@192.168.1.26:/root/ #拷贝文件