如何设置SSH密钥
来源:互联网 发布:mac macintosh hd 编辑:程序博客网 时间:2024/05/27 06:14
提供:ZStack云计算
关于SSH密钥
SSH密钥提供一种更为安全的虚拟专有服务器登录机制,即利用SSH而非单纯依靠密码完成登录。与易被窃取的密码不同,SSH密钥几乎无法以暴力方式破解。生成的密钥对为我们提供两条字符串,即公钥与私钥。大家可以将公钥保存在任意服务器,并利用配备有私钥的客户端对该服务器者访问。当二者匹配时,系统即会解锁而不再需要输入密码内容。另外,大家也可以对私钥进行保护以额外提升安全性水平。
第一步——创建RSA密钥对
第一步是在客户设备上创建密钥对:
ssh-keygen -t rsa
第二步——保存密钥与口令
输入Gen Key命令后,系统会提示以下问题:
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
这里可以直接按下回车,从而将该文件保存在用户home目录中(本示例中的用户名为demo)。
Enter passphrase (empty for no passphrase):
大家可以自行决定是否使用口令。输入口令的作法确有优势:无论密钥的安全性有多高,也无论其如何进行加密,最终效果依然取决于其是否无法为他人所获取。在使用口令时,即使受口令保护的私钥落入未授权用户手中,他们亦无法在不知道口令内容的情况下使用该私钥。当然,其缺点在于在每次使用时,我们都需要手动输入口令。
完整的密钥生成流程如下所示:
ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa.Your public key has been saved in /home/demo/.ssh/id_rsa.pub.The key fingerprint is:4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@aThe key's randomart image is:+--[ RSA 2048]----+| .oo. || . o.E || + . o || . = = . || = S = . || o + = + || . o + o . || . o || |+-----------------+
现在公钥已经保存在/home/demo/.ssh/id_rsa.pub,而私钥则保存在/home/demo/.ssh/id_rsa。
第三步——复制公钥
密钥对生成完成后,我们需要将公钥放置在需要使用的虚拟服务器当中。
大家可以使用以下命令将公钥复制到新设备的authorized_keys文件当中。请确保将用户名与IP地址替换为您的实际值。
ssh-copy-id user@123.45.56.78
另外,大家也可以利用SSH直接粘贴密钥:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
无论使用哪种方法,其显示结果应如下所示:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.user@12.34.56.78's password: Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in: ~/.ssh/authorized_keys
现在大家即可使用user@12.34.56.78实现登录而无需输入密码。不过,如果大家设置了口令,则需要在每次登录时都输入一次口令。
第四步(可选)——禁用Root登录密码
完成以上步骤后,我们还需要确保自己只能利用SSH密钥进行登录,即禁用root登录。
打开SSH配置文件:
sudo nano /etc/ssh/sshd_config
在文件中找到包含PermitRootLogin的一行,进行修改以确保用户只能利用SSH密钥完成登录:
PermitRootLogin without-password
重载以应用变更:
reload ssh
Digital Ocean Addendum
DIgital Ocean控制面板允许大家在创建新Droplet时为其添加公钥。大家可以在方便的位置生成SSH密钥,例如本地计算机,而后将其公钥上传至-SSH key位置。
此后,在我们创建新的VPS时,即可选择在服务器上使用该公钥。如此一来,服务器不会通过邮件向我们发送root密码,我们亦能够通过选定的客户端登录至新的虚拟专有服务器。如果大家创建了口令,则需要在每次登录时正确输入。
本文来源自DigitalOcean Community。英文原文:How To Set Up SSH Keys By Etel Sverdlov
翻译:diradw
- 如何设置SSH密钥
- SSH密钥登录设置
- ssh免密钥设置
- Ubuntu设置ssh密钥登录
- 设置 SSH 通过密钥登录
- 设置 SSH 通过密钥登录
- 设置SSH无密钥登陆
- 设置SSH服务器只采用密钥认证
- SSH通过密钥登录的设置方法
- Linux设置ssh免密钥登录
- ubuntu设置 SSH 通过密钥登录
- 如何使用RSA密钥登陆ssh
- 如何使用RSA密钥登陆ssh
- ssh密钥
- ssh密钥
- 设置SSH密钥在本地电脑和GitHub服务器连接
- ssh证书登录(密钥创建与用户设置)
- 初次使用git配置以及git如何使用ssh密钥
- session和cookie的区别
- Dubbo与Zookeeper、SpringMVC整合和使用(入门级)
- latex插入python代码
- SSH架构(Struts+Spring+Hibernate)介绍和一个例子72
- J2EE系列之Hibernate4学习笔记(三)--映射对象标识符(OID)
- 如何设置SSH密钥
- Javascript多叉树的递归遍历和非递归遍历
- [BZOJ2756][JLOI2010]铁人双项比赛(半平面交+三分法)
- SuperMap iDesktop 8C 地理信息产品输出
- iOS开发正则表达(转:https://my.oschina.net/u/1245365/blog/376517)
- 科锐课堂笔记:2017/5/3 数据结构基本概念
- 高端设计公司的意象创意
- OpenCV学习笔记--认识她
- arm开发板ubuntu14.04安装opencv