300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux下实现普通用户免密登录并执行root权限

Linux下实现普通用户免密登录并执行root权限

时间:2019-04-22 14:29:39

相关推荐

Linux下实现普通用户免密登录并执行root权限

需求:服务器的root和密码登录都禁用,只开放普通用户登录,这时需要给普通用户配置秘钥文件,实现无密码登录

需要注意的是使用什么用户,就把秘钥文件拷入到该用户的家目录下,如果是root用户,就直接拷贝到/root/.ssh/下(本次测试是使用普通用户oper测试的)

1) .ssh目录的权限必须是700

2) .ssh/authorized_keys文件权限必须是600

测试机器:

host1:192.168.0.131

host2:192.168.0.132

一、在新机器生成秘钥:

[root@host1 .ssh]# ssh-keygen Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:O9C8LWfjT44gIJR+URWH3FFJhsgqMU8VmaDDZAGWR7k root@host1The key's randomart image is:+---[RSA 2048]----+| o+=oo*=Oo=+. || ..==o. B.o.. || o.=* . || o Eooo || o o.. S || o . . + ||. * = . || . B =||o.o |+----[SHA256]-----+[root@host1 .ssh]# lsid_rsa id_rsa.pub known_hosts

二、将id_rsa.pub拷入需要登录的服务器的用户家目录下的.ssh/authorized_keys中(即192.168.0.132下的/home/oper/.ssh/authorized_keys)

以下三种方法任选其一即可

2.1:通过ssh-copy-id的方式

[root@host2 oper]# mkdir /home/oper/.ssh[root@host2 oper]# chown oper:oper .ssh/[root@host2 oper]# chmod 700 .ssh[root@host2 oper]# ls -la总用量 20drwx------. 3 oper oper 111 4月 23 12:58 .drwxr-xr-x. 5 root root 43 4月 23 10:18 ..-rw-------. 1 oper oper 104 4月 23 13:01 .bash_history-rw-r--r--. 1 oper oper 18 8月 3 .bash_logout-rw-r--r--. 1 oper oper 193 8月 3 .bash_profile-rw-r--r--. 1 oper oper 231 8月 3 .bashrcdrwx------. 2 oper oper 29 4月 23 14:32 .ssh[root@host1 .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub oper@192.168.0.132oper@192.168.0.132's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'oper@192.168.0.132'"and check to make sure that only the key(s) you wanted were added.#登录测试[root@host1 .ssh]# ssh oper@192.168.0.132Last failed login: Mon Apr 23 14:32:40 CST from 192.168.0.131 on ssh:nottyThere was 1 failed login attempt since the last successful login.Last login: Mon Apr 23 14:21:57 from 192.168.0.131[oper@host2 ~]$

2.2:通过scp将内容写到对方的文件中

[root@host1 .ssh]# scp -p ~/.ssh/id_rsa.pub oper@192.168.0.132:/home/oper/.ssh/authorized_keysoper@192.168.0.132's password: id_rsa.pub#登录测试100% 392 16.6KB/s 00:00 [root@host1 .ssh]# ssh oper@192.168.0.132Last login: Mon Apr 23 14:35:06 from 192.168.0.131[oper@host2 ~]$

2.3:通过ssh命令写入,此方式可写成脚本,然后批量写入主机

此方式也可直接把/root/.ssh/id_rsa.pub的内容直接复制粘贴到host2下/home/oper/.ssh/authorized_keys中

[root@host1 .ssh]# ssh oper@192.168.0.132 "echo `cat /root/.ssh/id_rsa.pub` >> /home/oper/.ssh/authorized_keys "oper@192.168.0.132's password: [root@host1 .ssh]# ssh oper@192.168.0.132oper@192.168.0.132's password: [root@host2 .ssh]# pwd/home/oper/.ssh[root@host2 .ssh]# ll总用量 4-rw-rw-r--. 1 oper oper 392 4月 23 14:43 authorized_keys[root@host2 .ssh]# chmod 600 authorized_keys [root@host2 .ssh]# ll总用量 4-rw-------. 1 oper oper 392 4月 23 14:43 authorized_keys#登录测试[root@host1 .ssh]# ssh oper@192.168.0.132Last login: Mon Apr 23 14:40:54 from 192.168.0.131[oper@host2 ~]$ 出现需要密码登录是因为host2的authorized_keys权限没有设置为600;把权限设置为600后,再执行 ssh oper@192.168.0.132就可以了,如果之前有权限是600的authorized_keys;则可直接登录

PS:如果普通用户需要切换到root用户且无需输入密码,则在root用户模式下执行命令:visudo

[root@host2 ~]# visudo#最后一行加入Cmnd_Alias SU = /bin/suoper ALL = (root) NOPASSWD: SU:wq[root@host2 ~]# su - oper#登录测试[oper@host2 ~]$ sudo su #最好使用sudo su - 完全切换,su会加载不出来环境变量[root@host2 oper]#

附:文件说明~/.ssh/identity该用户默认的 RSA1 身份认证私钥(SSH-1)。此文件的权限应当至少限制为"600"。生成密钥的时候可以指定采用密语来加密该私钥(3DES)。ssh(1) 将在登录的时候读取这个文件。~/.ssh/identity.pub该用户默认的 RSA1 身份认证公钥(SSH-1)。此文件无需保密。此文件的内容应该添加到所有 RSA1 目标主机的 ~/.ssh/authorized_keys 文件中。~/.ssh/id_dsa该用户默认的 DSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。生成密钥的时候可以指定采用密语来加密该私钥(3DES)。ssh(1) 将在登录的时候读取这个文件。~/.ssh/id_dsa.pub该用户默认的 DSA 身份认证公钥(SSH-2)。此文件无需保密。此文件的内容应该添加到所有 DSA 目标主机的 ~/.ssh/authorized_keys 文件中。~/.ssh/id_rsa该用户默认的 RSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。生成密钥的时候可以指定采用密语来加密该私钥(3DES)。ssh(1) 将在登录的时候读取这个文件。~/.ssh/id_rsa.pub该用户默认的 RSA 身份认证公钥(SSH-2)。此文件无需保密。此文件的内容应该添加到所有 RSA 目标主机的 ~/.ssh/authorized_keys 文件中。/etc/ssh/moduli包含用于 DH-GEX 的 Diffie-Hellman groups 。文件的格式在 moduli(5) 手册页中描述。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。