securecrt+winscp key 登录ssh(ubuntu 8.04)
今天很容易就配置了securecrt用私钥登录ubuntu下的ssh,但是securefx出现了中文乱码,简直没法使用,我本来希望通过sftp方式支持我在远程能够方便地下载我的文档。
我试验了securecrt 5.5 6.0.2 ,securefx 6.0.2,putty,fileZilla,winscp ,其实本来问题没有那么复杂,只是我一直使用securecrt 5.5,尤其是他的宏非常方便,于是我的想法是:
1、securecrt作为ssh登录客户端;
2、一款方便的sftp图形客户端,中文支持良好;
3、要用RSA密钥作为加密方式,取消密码登录,保证安全性;
ssh配置记录
ubuntu 8.04默认已经安装了openssh-client和openssh-server,不需要额外安装ssh
ps -e | grep ssh检查,发现系统启动后已经有sshd进程运行
客户端配置
首先做虚拟机镜像,安装securecrt 5.5,深度版xp运行破解补丁有问题,换成tomato测试,确认不是虚拟机版本的问题,是破解补丁无法运行造成的。从正常安装后的securecrt 5.5运行文件考入虚拟机后解决注册问题
用户名密码ssh登录ubuntu正常
一、首先用secureCrt创建密钥
1.使用SecureCRT创建私钥和公钥.
SecureCRT:Quick Connect-> Authentiation -> Public Key -> Properties ->Create Identity File -> DSA/RSA -> Set Passphrase -> Done
这个时候在指定目录会生成两个文件,例如,私钥my_rsa和公钥my_rsa.pub
2.linux服务器上建立.ssh目录,一般情况下,已经有这个目录
# mkdir /root/.ssh
# chmod 700 /root/.ssh
3.将公钥my_rsa.pub传到linux服务器,将SSH2兼容格式的公钥转换成为Openssh兼容格式
# ssh-keygen -i -f Identity.pub >> /root/.ssh/authorized_keys2
# chmod 600 /root/.ssh/authorized_keys2
4.在SecureCRT里面设置登录模式为PublicKey,并选择刚刚创建的my_rsa文件作为私钥
5.重启Linux服务器上SSH服务器
#service sshd restart或者/etc/init.d/ssh restart
6.由于已经设置了密钥登录,原来的密码登录就完全可以去掉
$ sudo vim /etc/ssh/sshd_config
Protocol 2 /仅允许使用SSH2
PubkeyAuthentication yes /*启用PublicKey认证
AuthorizedKeysFile .ssh/authorized_keys2 /*PublicKey文件路径
PasswordAuthentication no /*禁止密码验证登录
PS:以上步骤是使用SecureCRT生成的密钥对来进行登录验证的,其实也可以在服务器上使用ssh-keygen命令生成的密钥,同样在生成密钥对之后,将格式转换成SecureCRT使用的SSH2格式
注意:步骤3中的转换key格式易于为大家忽略,请多注意此点。
二、把创建的私钥共享
由于securecrt创建的私钥不同于winscp使用的私钥格式,需要转换
securecrt>>tools>>Convert Private Key to OpenSSH Format ...
保存成openssh格式的密钥对,然后运行winscp包里的puttygen>>Conversions>>Import key选择刚才转换的私钥,输入key passphrase后,选择Save private key,保存成ppk格式的文件
三、解决winscp的中文乱码问题
在WinSCP启动画面上先把进阶选项勾选起来,然后在SFTP设定上将伺服器不使用UTF-8编码选项关闭。