ssh配置公钥私钥登录服务器
原理
密码的方式的即时认证的方式 。而公私钥 是在服务器保存一份已经通过认证的加密串,登录时通过这个加密串去认证。
公钥是可以传播的,私钥只能在自己的本地
公私钥的工作原理, 可以参考这篇文章: SSH公钥登录(私钥认证)原理
生成 公私钥
有机器A,B。现想A通过ssh免密码登录到B。
ls -al ~/.ssh
检测 A主机下是否已经生成过 SSh key , 如果存在 id_rsa 和 id_rsa.pub 的话,说明已经生成过 SSH key 了。可以直接下一步。 否则要先生成。
使用 ssh-keygen 命令 , your-email@example.com 替换为你的邮箱。
> ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.
命令行会提示让你指定秘钥的名称,按回车键将 SSH Key 保存到默认文件名即可:
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
如果要更改路径,这里要输入绝对路径,不然就出现在根目录
/下了。(一般不要修改,默认路径最好)
接下来会询问你为 SSH Key 设置密码,按回车键即可,默认为空密码:
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
不输入,直接回车就是空密码了
这一步的密码一定要注意 。 设置为空密码,才能免密码登录, 否则就是要密钥的密码了。 有较多新手朋友烂在了这一步 。明明设置了密钥,却还是要输入密码。就是这个原因了。
可以都选择默认,一路 Enter 键即可.
这个时候如果我们再使用:
> ls -al ~/.ssh
id_rsa id_rsa.pub known_hosts
SSH 秘钥的两个文件:
id_rsa —— SSH 秘钥的 私钥 (Private Key)
id_rsa.pub —— SSH 秘钥的 公钥 (Public Key)
B 主机设置公钥
把A机下的/root/.ssh/id_rsa.pub 复制到B机的 /root/.ssh/authorized_keys文件里,先要在B机上创建好 /root/.ssh 这个目录。
两种方式:
一:
ssh-copy-id root@192.168.1.181
二:用scp复制。
[root@A ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.181:/root/.ssh/authorized_keys
root@192.168.1.181's password:
id_rsa.pub 100% 223 0.2KB/s 00:00
由于还没有免密码登录的,所以要输入一次B机的root密码。
需要特别注意的是:B主机的.ssh文件的所有者要是root,如果不是要改:
chown -R root:root .ssh
同时,B主机的authorized_keys文件,要是600权限的,如果不是,也要改:
chmod 600 authorized_keys
A主机使用公钥免密登录B主机的root用户
[root@A ~]# ssh -l root 192.168.1.181
第一次登录是时要你输入yes。
现在A机可以无密码登录B机了。
小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)
想让A,B机无密码互登录,那B机以上面同样的方式配置即可。
参考文章: https://blog.csdn.net/qq_31016531/article/details/78850162
ssh配置公钥私钥登录服务器的更多相关文章
- 配置SecureCRT以SSH公钥方式登录服务器
为了更方便管理服务器,CRT一个功能非常方便.那就是可以使用私钥认证通过后直接连接,而且对于密码保护比较安全一点. 首先配置ssh Port 32812Protocol 2UseDNS noPubke ...
- ubuntu git生成ssh key (公钥私钥)配置github或者码云
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...
- SSH配置免密登录
[参考文章]:linux服务器ssh免密码登录 [参考文章]:ssh分发秘钥时出现错误“Permission denied (publickey,gssapi-keyex,gssapi-with-mi ...
- CentOS下SSH远程免密登录服务器
.5服务器上配置,通过ssh远程免密登录192. 1.安装SSH,此处省略 2.生成公钥和私钥,生成的秘钥默认在/root/.ssh/文件夹里面 [root@localhost ~ ::&&a ...
- [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)
转自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 阅读目录 1.paramiko模块介绍 2.paramiko的使用方法 回到顶部 1.para ...
- ssh配置免密码登录
日常工作中很多情况下都需要登录服务器进行管理,一般都是用ssh进行连接,为了防止密码外泄,可以配置下ssh的免密码登录. 首先服务器两台: A:43.224.34.* B:104.238.161.* ...
- Linux SSH使用公钥私钥实现免登陆
公钥和私钥(我是文盲,钥字之前都是读yao,这是多音字这里应该念yue),是成对出现的,一旦任何一个做了更改都会验证失败. 1.免登陆的实现: 使用下例中ssky-keygen和ssh-copy- ...
- ssh配置无password登录
前提.机器A,B,均为RedHat Linux操作系统,均实用户user 1.以usernameuser登录,在A机器上运行 ssh-keygen -t rsa 一路回车.不须要输入password ...
- 支付宝开放平台 配置RSA(SHA1)密钥 OpenSSL配置公钥私钥对
进入到第一次配置支付宝支付服务了 配置支付宝服务,需要去支付宝的开放平台申请服务 需要设置一些参数 其中需要在后台设置配置RSA(SHA1)密钥(公钥(注意这个子读"yao")) ...
随机推荐
- Linux Shell 计算脚本执行过程用了多长时间
#!/bin/bash starttime=`date +'%Y-%m-%d %H:%M:%S'` #执行程序 endtime=`date +'%Y-%m-%d %H:%M:%S'`start_sec ...
- Mysql 保存emoji表情报错
保存emoji表情错误 首先错误表现,抛出业务层报错之外,根源的数据库错误是: sql 错误码 1366 字符集相关错误. uncategorized SQLException; SQL state ...
- 1994_An Algorithm To Reconstruct Wideband Speech From Narrowband Speech Based On Codebook Mapping
论文地址:基于码本映射的窄带语音宽带重建算法 博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/12144324.html 摘要 本文提出了一种从窄带 ...
- js—数组那些事儿
数组维度升级 创建一维数组 //创建一维数组 var a=[]; var b=new Array(); var c=[1,2,'w']; var d=[1,2,[1,2]]; 创建二维数组 var c ...
- Centos7 使用Docker 部署mssql 2017
mssql是.NET的标配,一般使用.NET的人基本都用mssql. 以前mssql只能支持windows平台,从微软打出 拥抱开源 的口号开始,mssql的2017 版本,开始支持linux系统. ...
- AndroidStudio报错:Could not download gradle.jar:No cacahed version available for offline mode
场景 在讲Android Studio 的.gradle目录从默认C盘修改为 别的目录后,新建app提示: Could not download gradle.jar:No cacahed versi ...
- ELK学习004:Elasticsearch常规操作
CRUD 在我们的项目中有日志是一个必不可少的东西,但是日志的检索是一个很麻烦的事情,如每天一个日志,要找到问题就得一个一个找,并不能做到检索功能,这还算好的,如果是分布式的,每个机器都得找一遍,这种 ...
- 软件测试常见术语(英->汉)收藏好随时备用!
Defect 缺陷Defect Rate 缺陷率Verification & Validation 验证和确认Failure 故障White-box Testing 白盒测试Black-box ...
- C# 通过反射检查属性是否包含特定字符串
public static bool StringFilter(this object model,string filterStr) { if (string.IsNullOrEmpty(filte ...
- Luarocks 安装艰难过程
https://www.cnblogs.com/fanxiaojuan/p/11551268.html