从某种角度讲,SSH证书登陆远程服务器要安全很多,但并不绝对安全。不过,它很方便,可以让你每次无需使用密码,就能快速ssh连接到你的服务器上面去,同时,虽然没有使用密码,却不是采用缓存密码的方式,而是通过一个公钥和私钥来完成这个过程。那么怎么来实现呢?我们这篇文章详细阐述这个操作。

1.生成公钥私钥

Linux系统默认已经集成了ssh工具,因此我们只需要使用一个简单的命令即可完成公钥私钥的生成。

$ cd ~

$ ssh-keygen -t rsa

$ cd .ssh

$ ls

这样就可以了,你可以看到.ssh目录下已经有了id_rsa、id_rsa.pub两个密钥文件。

2.将公钥上传到远程服务器

我们要登陆远程服务器,那么把我们的公钥交给远程服务器,一旦交付之后,今后我们远程登陆时,服务器就可以通过这个公钥识别本机,从而无需密码即可完成登陆。在本机上执行如下操作:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xx.xxx.xx

执行之后,会让你输入一次远程服务器root登陆的密码,输入即可。

通过这一步,我们将公钥加入到服务器的认证列表中,被服务器“记录在案”。

但是我在一次执行该操作的时候,发现服务器上得到的结果中出现了乱码。为了保险起见,我的建议是,直接打开id_rsa.pub文件,复制里面的内容,然后登陆到服务器上面,进入~/.ssh/,打开authorized_keys,把内容拷贝到里面。

3.到服务器上调整配置

执行上面的步骤之后,我们还不是很放心,我们通过原始的ssh方法登陆到远程服务器上面去,并对服务器上的一些配置进行调整。

$ ssh root@xxx.xx.xxx.xx

root@xxx > ### 登陆到服务器上了,当前目录为/root,也就是root的~

$ cd .ssh ### 注意,如果服务器是裸机,应该是不存在.ssh目录的,你需要自己创建.ssh目录,当然,执行上面的步骤后,会自动创建.ssh目录

$ chmod 600 authorized_keys ### 一些博客说要执行这个步骤,我们就执行吧

$ vi authorized_keys ### 你可以和你本地id_rsa.pub进行对比,看看authorized_keys中是否已经存在和你的公钥一模一样的记录

通过上面这个步骤进行确认,确认之后,我们修改服务器的一些配置。

$ vi /etc/ssh/sshd_config

通过这条命令,打开sshd的配置文件,进行配置,修改下面的几个值:

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,

# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。

# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。

# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内

RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys

注意上面红色字,这几个配置项,决定了你是否可以用ssh的key file进行登陆。这是必须要改的,改完之后,重启sshd服务:

$ service sshd restart

OK,服务器端已经完成了,不用再管了。

4.本地ssh登陆配置

除了服务器要配置外,还要对本地进行配置,只有经过本步骤配置后,ssh登陆时,才会主动使用证书进行登陆,否则还是会提示输入密码。怎么配置呢,其实很简单:

$ sudo vi /etc/ssh/ssh_config

打开本地的ssh配置文件,通过搜索,找到IdentityFile,你会发现是被注释掉的,我们打开注释,并且增加一行,结果如下:

IdentityFile ~/.ssh/id_rsa

IdentityFile /home/yourname/.ssh/id_rsa

保存,并重启本地的ssh。OK,本地的ssh也配置好了。

现在,请测试使用ssh root@xxx.xx.xxx.xx进行登陆。

2015-11-09

7822

裸服务器证书,使用SSH证书远程登陆你的服务器相关推荐

  1. php ssh 管理服务器,php 利用ssh执行远程或本地liunx服务器命令

    /** * 利用ssh执行 远程或本地liunx服务器命令 * 虽然可以用 shee_exec来执行本地机命令 但却无法选择用哪个用户来执行 此函数可解决此类问题 * $host ssh 主机名 可以 ...

  2. 【SSH】通过ssh实现远程登陆服务器!

    目录 1.点击"文件","连接" 2.点击此处"新建会话" 3.输入主机ip和用户名 4.一直下一步,点击连接 5.点击连接会弹出一个框,输 ...

  3. 如何远程链接linux服务器,如何远程登陆Linux/Windows服务器

    原标题:如何远程登陆Linux/Windows服务器 如何远程登录Linux或Windows服务器?租用了服务器,需要远程登录后才能管理自己的服务器.不同操作系统的服务器远程登录方法不一样,下面优与云 ...

  4. Linux远程登陆到Linux服务器

    一.为什么需要远程登陆Linux 1.说明:公司开发时候,具体的应用场景是这样的 (1)Linux服务器是开发小组共享 (2)正式上线的项目是运行在公网 (3)因此程序员需要远程登陆到Linux进行项 ...

  5. ssh终端远程登陆主机命令--笔记

    ssh终端远程登陆主机命令 ssh user@host ssh optadmin@10.55.45.38 转载于:https://www.cnblogs.com/newcolor/p/8193971. ...

  6. python ssh连接服务器_pycharm通过ssh连接远程服务器教程

    由于想要使用pycharm连接Window子系统Ubuntu进行开发,找了很多教程都不够详细,花了点儿时间,最后配置成功. 将pycharm连接Window子系统的配置过程总结如下,连接其它远程服务器 ...

  7. Windows下Putty使用ssh密钥对远程连接阿里云服务器

    文章目录 一.背景 二.密钥对 1.创建密钥对 2.绑定密钥对至服务器实例 三.配置安全组规则 四.生成PUTTY格式的私钥 五.Putty使用密钥对远程登录服务器 六.配置Putty长时连接 七.踩 ...

  8. Mac 远程登陆阿里云服务器

    最近购买了一台阿里云的服务器(学生优惠实在是太给力了, 感谢阿里). 因为在阿里云的控制台里远程控制服务器远没有本地控制的感觉好, 所以就想在本地的 terminal 中直接登陆阿里云服务器. 也是折 ...

  9. php 登录 linux服务器,如何实现linux系统远程登录到linux服务器

    linux系统登录到远程linux服务器: 有多种不同的协议可供选择,也许SSH是"最好"的.SSH是secure shell的简写,意为"安全的shell". ...

最新文章

  1. Spring 3.1 事务配置
  2. WebService大讲堂之Axis2(5):会话(Session)管理
  3. 0基础lua学习(二十)Lua单例
  4. 线性代数:System of Linear Equation学习笔记
  5. jbig java_jbig2 Java Develop 238万源代码下载- www.pudn.com
  6. Log Explorer 使用简介转
  7. 人情味,让你的内容脱颖而出
  8. jQuery的回调支持
  9. mac系统一些快捷键
  10. jQuery文档处理程序
  11. 是否要从单片机转嵌入式Linux?
  12. 华为服务器系统图标,服务器图标
  13. 华为笔记本电脑home键和end键快捷方式
  14. 超全NetLogo多主体仿真建模(小世界WWW+无标度网络+随机网)内含源码+界面设计+程序分析
  15. 博客备份工具:Blog_Backup
  16. C# 实现俄罗斯方块
  17. PHP接入谷歌验证器(Google Authenticator)
  18. 雷军内部信:米家有品拆分 做独立电商
  19. 003-位运算异或“∧”使特定bit位翻转
  20. Java中IO(三、转换流与打印流)

热门文章

  1. 1073 Scientific Notation (20 分)【难度: 一般 / 知识点: 字符串 模拟】
  2. 2.1.6 编码与调制(2)
  3. collections之defaultdict
  4. jQuery中Map的使用
  5. Boostrap的按钮下拉菜单
  6. java批量生成订单号_【笔记6-支付及订单模块】从0开始 独立完成企业级Java电商网站开发(服务端)...
  7. tomcat和http简介
  8. 《MyBatis技术原理与实战》之SqlSession的用途
  9. 算法--腾讯面试:单词游戏,谁会赢?
  10. mysql取n条不重复_MySQL重复数据中限定操作n条