ssh证书登录

2013/01/03 网站开发

使用证书登录ssh有很多好处,可以减少很多被黑的机会。这里总结下相关的事情。

场景

客户端是写网页用的机器。服务器端是VPS.

  • Server
    • Debian 6.0 with ssh;
  • Client
    • windows 7.0 with putty;
    • Mac OSX

日常工作就是登录服务器修改配置,上传网页等等。

证书登录的原理,按照我的理解,就是在服务器端使用pub key file,客户端使用private key file。通过加密协议进行通信的过程。需要在服务器端修改sshd_config。增加pub key file.客户端的putty或者ssh,使用private key file.

设置

Server

修改/etc/ssh/sshd_config 文件

RSAAuthentication yes        # 启用 RSA 认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)
PubkeyAuthentication yes     # 启用公钥认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)
PasswordAuthentication no    # 禁止密码认证(改为no,默认为yes是用密码认证)
StrictModes no   #修改为no,默认为yes.如果不修改用key登陆是出现server refused our key

Client

Mac OSX
  • 在 Mac上生成密钥。ssh-keygen -b 2048 生成两个密钥文件。
  • 上传公钥文件到服务器,添加到authorized_keys之后。~/.ssh/authorized_keys : cat id_rsa.pub >> .ssh/authorized_keys
  • ssh-add id_rsa
  • 这个命令可以将私钥加入到ssh认证中,以后每次登录,就不用输入密码了。
Windows

Windows上使用的是putty。因此需要将生成好的密钥拷贝到 ~/.ssh中,并且使用puttygen.exe倒入密钥,并生成putty使用的格式(ppk文件)。

filezilla登录

打开FileZilla,找到“连接”-“SFTP”设置项,点击右面的“添加密钥文件(A)”按钮,找到已经生成的私钥文件,FileZilla会提示你“文件‘/home/Identity’的格式不是被FileZilla所支持的。您想转换此文件到FileZilla所认可的格式吗?”,当然回答“是”。FileZilla会接着让你选择转换后的文件名和保存位置,并且默认保存为putty的密钥文件格式(*.ppk)。保存完退出设置对话框。

使用Dropbear时,看这个文章:http://wiki.openwrt.org/oldwiki/DropbearPublicKeyAuthenticationHowto, 主要流程是:

  • mv authorized_keys /etc/dropbear
  • chmod 0700 /etc/dropbear
  • chmod 0600 /etc/dropbear/authorized_keys
  • change files:/etc/xinetd.d/dropbear, /etc/default/dropbear,
  • /etc/init.d/dropbear, 增加参数 -s.
  • invoke-rc.d xinetd restart

Search

    Table of Contents