裸服务器证书,使用SSH证书远程登陆你的服务器
从某种角度讲,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证书远程登陆你的服务器相关推荐
- php ssh 管理服务器,php 利用ssh执行远程或本地liunx服务器命令
/** * 利用ssh执行 远程或本地liunx服务器命令 * 虽然可以用 shee_exec来执行本地机命令 但却无法选择用哪个用户来执行 此函数可解决此类问题 * $host ssh 主机名 可以 ...
- 【SSH】通过ssh实现远程登陆服务器!
目录 1.点击"文件","连接" 2.点击此处"新建会话" 3.输入主机ip和用户名 4.一直下一步,点击连接 5.点击连接会弹出一个框,输 ...
- 如何远程链接linux服务器,如何远程登陆Linux/Windows服务器
原标题:如何远程登陆Linux/Windows服务器 如何远程登录Linux或Windows服务器?租用了服务器,需要远程登录后才能管理自己的服务器.不同操作系统的服务器远程登录方法不一样,下面优与云 ...
- Linux远程登陆到Linux服务器
一.为什么需要远程登陆Linux 1.说明:公司开发时候,具体的应用场景是这样的 (1)Linux服务器是开发小组共享 (2)正式上线的项目是运行在公网 (3)因此程序员需要远程登陆到Linux进行项 ...
- ssh终端远程登陆主机命令--笔记
ssh终端远程登陆主机命令 ssh user@host ssh optadmin@10.55.45.38 转载于:https://www.cnblogs.com/newcolor/p/8193971. ...
- python ssh连接服务器_pycharm通过ssh连接远程服务器教程
由于想要使用pycharm连接Window子系统Ubuntu进行开发,找了很多教程都不够详细,花了点儿时间,最后配置成功. 将pycharm连接Window子系统的配置过程总结如下,连接其它远程服务器 ...
- Windows下Putty使用ssh密钥对远程连接阿里云服务器
文章目录 一.背景 二.密钥对 1.创建密钥对 2.绑定密钥对至服务器实例 三.配置安全组规则 四.生成PUTTY格式的私钥 五.Putty使用密钥对远程登录服务器 六.配置Putty长时连接 七.踩 ...
- Mac 远程登陆阿里云服务器
最近购买了一台阿里云的服务器(学生优惠实在是太给力了, 感谢阿里). 因为在阿里云的控制台里远程控制服务器远没有本地控制的感觉好, 所以就想在本地的 terminal 中直接登陆阿里云服务器. 也是折 ...
- php 登录 linux服务器,如何实现linux系统远程登录到linux服务器
linux系统登录到远程linux服务器: 有多种不同的协议可供选择,也许SSH是"最好"的.SSH是secure shell的简写,意为"安全的shell". ...
最新文章
- Spring 3.1 事务配置
- WebService大讲堂之Axis2(5):会话(Session)管理
- 0基础lua学习(二十)Lua单例
- 线性代数:System of Linear Equation学习笔记
- jbig java_jbig2 Java Develop 238万源代码下载- www.pudn.com
- Log Explorer 使用简介转
- 人情味,让你的内容脱颖而出
- jQuery的回调支持
- mac系统一些快捷键
- jQuery文档处理程序
- 是否要从单片机转嵌入式Linux?
- 华为服务器系统图标,服务器图标
- 华为笔记本电脑home键和end键快捷方式
- 超全NetLogo多主体仿真建模(小世界WWW+无标度网络+随机网)内含源码+界面设计+程序分析
- 博客备份工具:Blog_Backup
- C# 实现俄罗斯方块
- PHP接入谷歌验证器(Google Authenticator)
- 雷军内部信:米家有品拆分 做独立电商
- 003-位运算异或“∧”使特定bit位翻转
- Java中IO(三、转换流与打印流)
热门文章
- 1073 Scientific Notation (20 分)【难度: 一般 / 知识点: 字符串 模拟】
- 2.1.6 编码与调制(2)
- collections之defaultdict
- jQuery中Map的使用
- Boostrap的按钮下拉菜单
- java批量生成订单号_【笔记6-支付及订单模块】从0开始 独立完成企业级Java电商网站开发(服务端)...
- tomcat和http简介
- 《MyBatis技术原理与实战》之SqlSession的用途
- 算法--腾讯面试:单词游戏,谁会赢?
- mysql取n条不重复_MySQL重复数据中限定操作n条