主机 A centos
主机 B ubuntu
因为一个狗问题,尝试了五六个小时才成功…
配置主机A免密登录到主机B(方法一)
① 在主机A生产密钥对: ssh-keygen -t rsa, 会在.ssh目录下产生密钥文件
② 拷贝主机A的公钥到主机B: scp id_rsa.pub
③ 将主机A的公钥加到主机B的授权列表.ssh/authorized_keys(若不存在,手动创建): cat id_rsa.pub >> authorized_keys
④ 授权列表authorized_keys的权限必须是600,chmod 600 authorized_keys(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能)。另一件事是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。
在主机A
1、在终端生成密匙,命令如下(一路点击回车生成密匙)
ssh-keygen -t rsa
2、生成的密匙在.ssh目录下,可用以下命令查看:
cd .ssh/
ll
文件夹下一般有如下文件:
id_rsa //私钥
id_rsa.pub //公钥
known_hosts //远程访问过的ip
3、将公钥追加到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
查看.ssh文件夹 可发现文件列表中 有 authorized_keys文件
4、修改authorized_keys文件的权限,命令如下
chmod 600 ~/.ssh/authorized_keys
5、将authorized_keys文件复制到主机B,命令如下:
scp ~/.ssh/authorized_keys 用户名@主机B的ip:~/.ssh
6、在主机A上执行 ssh 主机B地ip
ssh B的ip
如不用输入密码即可登录,说明成功了
至此一般都能圆满结束…
然而,我花了五六个小时才完成,查看了无数教程…最后发现问题就是一个两分钟能解决的…
我的主机B上找不到.ssh文件夹,无法查看公钥私钥文件,一开始我没怎么在意,后来才发现,是主目录下有一个.ssh的文件,导致我无法通过 ssh -keygen 生成.ssh文件夹和公钥…
我服了真的…
进入root模式
sudo su
或者
sudo -i
查看所有文件 包括.开头的文件,使用如下命令
ls -alh
强制删除文件,用如下命令:
rm -f 文件名
若还是有问题,可以查看下ssh_config文件
sudo vi /etc/ssh/sshd_config
修改配置如下
#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 有了证书登录了,就禁用密码登录。
PasswordAuthentication no
希望每个人都能顺顺利利地完成任务,解决Bug,做好项目~
害,暑假马上拜拜咯