作者 主題: cent 7采用公钥远程登录cent 6系统  (閱讀 955 次)

0 會員 與 1 訪客 正在閱讀本文。

darlingshall

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
cent 7采用公钥远程登录cent 6系统
« 於: 2019-04-28 13:57 »
另外一种方法,适用于一台linux系统可登陆多台linux服务器的环境,
客户端-Cent OS 7    服务端-Cent OS 6 ( 可多台 )
 在客户端生成密钥对   使用命令 ssh-keygen -t rsa  按3次enter在默认路径下生成密钥对
在服务器端同样的账号家目录下新建.ssh目录并在此目录下新的建authorized_keys文件,公钥拷贝至服务器端.ssh目录并将公钥内容追加至authorized_keys文件.
尝试用ssh 10.15.11.**连接时出时提示 permission denied (publickey, gssapi-keyex,gssapi-with-mic)
尝试更改客户端和服务器端的SELinux为permissive后再次尝试连接,提示
Permissions 0644 for '/root/.ssh/id_rsa' are too open
It is required that your private key files are NOT accessible by others
This private key will be ignored.
Load key "/root/.ssh/id_rsa":bad permissions
permission denied (publickey, gssapi-keyex,gssapi-with-mic)
尝试更改服务器端和客户端 公钥文件权限 chmod 400 /root/.ssh/id_rsa 后可成功登陆。
后面尝试将客户端SELinux权限改为enforce后,依然可以成功登陆,但将服务器端SELinux权限改为enforce后再次提示permission denied
待后续补充SELinux知识
ps -eZ | grep sshd                                                      查看sshd进程的domain
find / -name ssh                                                         查找ssh有关的文件         查到  1配置文件:/etc/ssh   2执行文件: /usr/bin/ssh
ll -Z /etc/ssh    /usr/bin/ssh                                         查看所查到文件的类型字段分别为 sshd_key_t         ssh_exec_t
ll -Z /root/.ssh /home/SASG/.ssh                                查询.ssh目录下密钥文件的类型字段为  admin_home_t
chron -R -t sshd_key_t /home/SASG/.ssh /root/.ssh  更改文件类型
Permission denied (publickey,gssapi-keyex,gssapi-with-mic    再交尝试远程连接时报错信息的提示
vim /etc/ssh/sshd_config sshd.config                         修改此配置文件中 PassworAuthentication yes
services sshd restarte                                                重启sshd服务。
远程登录可用,但需输入服务器端账号的密码。

darlingshall

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
Re: cent 7采用公钥远程登录cent 6系统
« 回覆 #1 於: 2019-04-28 17:08 »
上午所做的操作等于说是回到了原点,使用密码验证的方式。
下午继续:
vim /etc/ssh/sshd_config sshd.config 后续更改配置文件 PassworAuthenttication no   
继续寻找问题点。
yum install -y setroubleshoot setroubleshoot-server   setroubleshoot会将错误信息写入/var/log/message
service auditd restart  重启auditd
在终端分别使用putty和linux客户端连接服务器,
tail /var/log/message  根据提示,分别输入以下命令:
grep sshd /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp
再次尝试在终端分别使用putty和linux客户端连接服务器,
问题依旧,再次检查日志信息,根据提示将 .ssh文件夹的类型改回默认类型。即:/sbin/restorecon -v /root/.ssh
再次测试成功!!!

问题终得解决!有几点疑问:
1 grep sshd /var/log/audit/audit.log | audit2allow -M mypol   这条命令的作用是什么?自己看的是第4版的基础,里面没有提到这条命令,改天再看看第3版,找一下这个命令,猜测是启用什么策略
2 semodule -i mypol.pp 这个命令是根据提示做的,好像是说要实现什么就执行这条命令,具体什么给忘了?
3 等于说问题出在 .ssh文件夹的类型上面,上午把这个文件夹类型改成了shd_key_t ,下午根据提示再改回默认类型,其中原由哪位老师能否帮忙解释一下,谢谢谢谢。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
Re: cent 7采用公钥远程登录cent 6系统
« 回覆 #2 於: 2019-04-29 20:12 »
首先,你得有目標電腦的遠端帳號密碼。也就是您先用 ssh 連線確定是可以使用密碼的。
然後再將 ssh 換成 ssh-copy-id  這樣來複製 key 就好。