本文会涉及如下内容: 对称加密和非对称加密的区别是什么? .ssh/known_hosts 文件中是什么信息,有什么作用? 如何在A主机和B主机配置单向ssh免密登录?
ssh登录报错Permission Denied都有哪几种原因?
之前买的云服务器到期了,今天新买了2个,计划搭个k8s集群。
之前使用率很低,用的时候基本也是登录到云服务商网站,再进入云主机。今天想,干嘛不配置一个ssh免密登录,这样直接在本地电脑就可以直接登录云主机,多方便。
区别在于加密与解密用的是否为同一个密钥,同一个即“对称加密”,不是同一个即“非对称加密”。
本文所做的配置两台主机的单向免密登录,本质就是使用rsa加密算法生成公钥和私钥,通过将A主机的公钥复制到B主机,实现A主机在ssh远程登录B主机时免输密码。
这个过程,涉及到了如下命令和文件:
ssh-copy-id:将指定文件copy到远程主机的.ssh/authorized_keys文件中
ssh-keygen:生成公钥和私钥
(用户根目录下)
.ssh/known_hosts:A主机首次ssh连接到B主机,会将B主机的公钥存放到该文件中,下次再ssh连接B主机时,会核对公钥,如果不同会报错。作用:提升安全性。如果公钥不同,OpenSSH会发出警告,避免受到DNS Hijack之类的攻击。相当于“输入密码后,又要根据姓名核对之前预留的身份信息”
.ssh/id_rsa:ssh-keygen命令生成的私钥
.ssh/id_isa.pub:ssh-keygen命令生成的公钥
1. 在A主机生成公钥和私钥
$ ssh-keygen
$ cd /home/<username>/.ssh/
$ ls
id_rsa id_rsa.pub known_hosts known_hosts.old
2. 将上一步生成的公钥复制到B主机
$ ssh-copy-id -i id_rsa.pub root@B主机ip
## 登录到B主机,可以看到.ssh/authorized_keys 中有了A主机的公钥
3. A主机ssh登录到B主机成功。
$ ssh root@B主机
原文来源:
https://docs.digitalocean.com/support/when-i-try-to-log-into-ssh-i-get-a-permission-denied-error./
密码不对
sshd_config文件中是否限制了密码登录、是否限制了root登录
$ cat /etc/ssh/sshd_config
### 如果为no则会ssh登录报错
### 修改后可以通过service sshd reload 使其生效
PermitRootLogin yes
PasswordAuthentication yes
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。