分享

SecureCRT用证书方式登录Ubuntu

 CodeStream 2012-04-02
如果一台服务器直接放在公网上,用密码ssh并不安全,搞破坏的人总有的,窃取密码的方法也总会有的。今天看了一下日志,才两天,就有那么多想在尝试猜密码的记录

 

 

        看来建立公钥认证是必须的。公钥和私钥是一个很长的字符串。公钥放在服务器上,私钥放在自己的客户机上。

        当客户机连接服务器时,如果私钥和公钥对上,就通过认证。

       实验的机子用ubuntu。新启一个虚拟机。
       首先,ubuntu服务器要安装ssh server(等于没讲)
       sudo apt-get install openssh-server
       安装完毕之后,即可用putty,或SecureCRT之类软件用密码登陆
       下面就是配置证书登录,可以用server生成密钥对,也可以用Putty或SecureCRT生成密钥对。
        我选择是SecureCRT。选择创建公钥

 

 

选择RSA

填写密码,又多了一道保障,即使不幸被窃取

加密位数,默认即可

 

点击完成,生成两个文件。默认名为identity和identity.pub
看文件即知道identity.pub是给服务器用的公钥。
上传到服务器,copy到~/.ssh目录,如果没有,则自己新建
mkdir .ssh
sudo chmod 700 .ssh
mv Identity.pub .ssh
接着把上传的公钥转换成Openssh可以认的公钥格式
ssh-keygen -i -f .ssh/Identity.pub > .ssh/authorized_keys (至于为什么是这个文件名,参见sshd里的sshd.config文件)
然后要更改文件authorized_keys 的权限,让其他用户的都没有任何权限
sudo chmod 600 .ssh/authorized_keys


然后更改ssh的登录方式,启用证书,禁止密码
sudo vim /etc/ssh/sshd_config

 

 

重新启动ssh,然后用客户端测试
sudo /etc/init.d/ssh restart

还有,禁止公网用户ping我
echo 1 >icmp_echo_ignore_all 将icmp_echo_ignore_all文件的内容改成1,就可以防ping
但不知道为什么,ubuntu说我没权限,不得以,先启用root
sudo passwd root
su
然后再次echo 1 >icmp_echo_ignore_all
然后禁用 root 
sudo passwd -l root

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多