MyException - 我的异常网
当前位置:我的异常网» 系统运维 » 最新SSH自动登录提案(RSA)

最新SSH自动登录提案(RSA)

www.myexceptions.net  网友分享于:2015-08-26  浏览:15次
最新SSH自动登录方案(RSA)

一. 前言

    直接使用ssh连接到服务器时,需要手动输入密码。如果能够不用手动输入密码,且自动登录到SSH服务器的话,那就爽了。
    经过一晚上的研究,终于搞定了。(原因在于旧的配置方式已不能正确使用了)
    在进行配置前,先假定ssh客户端为ssh-client,ssh服务器为ssh-server(运行ssh服务的一边)。

二. 配置方法

    1. 在ssh-client一边使用ssh-keygen生成一对rsa key
       $ssh-keygen -t rsa
  Generating public/private rsa key pair.
  Enter file in which to save the key (/home/abee/.ssh/id_rsa): <回车>
  Enter passphrase (empty for no passphrase): <回车>
  Enter same passphrase again: <回车>
       执行过程中连续回车即可,成功生成key后。private key 保存在~/.ssh/id_rsa,而public key保存在~/.ssh/id_rsa.pub

    2. 在ssh-client一边使用ssh-add将刚生成的private key加入到ssh agent中(旧配置方式没有这步哟)
       $ssh-add ~/.ssh/id_rsa
       Identity added: id_rsa (id_rsa)

    3. 将上述的public key(id_rsa.pub)的内容附加到ssh-server端的.ssh/authorized_keys中
       $cat ~/.ssh/id_rsa.pub | ssh username@ssh-server "cat - >> authorized_keys"

    4. 此时,配置完成啦。当再次使用ssh username@ssh-server登录时,不再使用密码啦。


三. 重启ssh-client

    重启ssh-client后,需要重新使用ssh-add将上面的private key加入到ssh-agent中。因为ssh-agent重启后,其没有保留上次记录的private key,因此需要重新使用ssh-add将private key加入。
    经过测试,对同一个private key进行多次ssh-add是没有问题的,总体感觉ssh-add或者ssh-agent会过滤重复的private key。
    为了实现一次配置,重复使用。可以考虑将ssh-add的执行放到~/.profile下,每次重新登录X或者Console后,系统就会自动从~/.profile中的ssh-add命令将private key加到ssh-agent中。
    $echo "ssh-add ~/.ssh/id_rsa" >> ~/.profile
    这个方法在ubuntu10.04测试通过。

四. 单个ssh-client与多个ssh-server

    经过测试,在不止一个ssh-server的情况下,每一个ssh-server可以共用上述的publice key。而ssh-client仅用一个pirvate key.


五. 特别注意

    1. 上述使用RSA方式进行ssh身份验证,具体可以查看man ssh。从上面两种环境可以看出,ssh-keygen产生的private key是关键文件,可以说这个就是ssh的登录密码。因此在ssh-client一侧,该文件的权限一般设置为600
    2. 在ssh-server侧存储public key的authorized_keys文件的权限至少是400,即最少也要用户可读。另外由于该public key可以计算出private key,且一般还会写入其他public key,所以其权限一般设置为700。
    3. 一般情况下,对于多个ssh-server,最好的方案是针对每一个ssh-server使用唯一一对RSA key。这样可以防止一个private key泄漏后,只有一个ssh-server的ssh安全受影响,其他ssh-server不受影响(因为使用不同的RSA key)。


六. 与旧配置的区别

    1. .ssh/目录在ssh-server/ssh-client端都没有权限要求,所以默认的755即可。
    2. 上述配置均不需使用root权限,也不需要配置/etc/ssh/sshd_config(默认即可),更不需要重启ssh服务器。

最后,希望对大家有用哈。大笑

文章评论

程序员和编码员之间的区别
程序员和编码员之间的区别
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
代码女神横空出世
代码女神横空出世
那些争议最大的编程观点
那些争议最大的编程观点
我的丈夫是个程序员
我的丈夫是个程序员
10个调试和排错的小建议
10个调试和排错的小建议
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
每天工作4小时的程序员
每天工作4小时的程序员
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
为什么程序员都是夜猫子
为什么程序员都是夜猫子
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Java程序员必看电影
Java程序员必看电影
旅行,写作,编程
旅行,写作,编程
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
鲜为人知的编程真相
鲜为人知的编程真相
中美印日四国程序员比较
中美印日四国程序员比较
程序员的鄙视链
程序员的鄙视链
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
老程序员的下场
老程序员的下场
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
我是如何打败拖延症的
我是如何打败拖延症的
 程序员的样子
程序员的样子
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
如何成为一名黑客
如何成为一名黑客
总结2014中国互联网十大段子
总结2014中国互联网十大段子
一个程序员的时间管理
一个程序员的时间管理
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员都该阅读的书
程序员都该阅读的书
程序员必看的十大电影
程序员必看的十大电影
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
编程语言是女人
编程语言是女人
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有