一. 如何在远端服务器创建一个sudo用户
1.在服务器新建一个用户
sudo useradd yuanyuan
2.修改用户权限的配置文件 /etc/sudoers 的权限
(1) [work@localhost ~]$ ll /etc/sudoers
-r–r-----. 1 root root 4356 10月 31 08:34 /etc/sudoers
**看到只有只读的权限
(2)添加可编辑w权限如下:**
[work@localhost ~]$ sudo chmod +w /etc/sudoers # 修改文件夹权限之后才能改
(3)添加用户如下(第3行所示) 那么新加用户也有sudo权限了
root ALL=(ALL) ALL
work ALL=(ALL) NOPASSWD:ALL
yuanyuan ALL=(ALL) NOPASSWD:ALL
3. 将/etc/sudoers文件的权限改回去
[work@localhost ~]$ sudo chmod -w /etc/sudoers
4. 查看系统有哪些sudo用户
cat /etc/sudoers
二. 如何ssh直接免密登录到特定的用户所在的远端服务器
1. 本地生成密钥对:ssh-keygen -t rsa
-t 按照什么加密方式 加密方式选 rsa|dsa均可以,默认dsa
-f 生成到哪个文件夹下,包括名称
实际执行: .ssh ssh-keygen -t rsa -f ~/.ssh/yy
生成公钥pub和私钥如下:
-rw------- 1 yuanyuan staff 1.8K 12 2 20:19 yy
-rw-r–r-- 1 yuanyuan staff 426B 12 2 20:19 yy.pub
2. 本地配置config 配置私钥
在本地 ~/.ssh 下编辑: vim config 添加内容如下:
Host yy (ssh连接的名称,自定义)
HostName .... (远端服务器的IP地址)
Port 22 (默认端口号)
User yuanyuan (即将登陆的远程服务器上的用户)
identityFile ~/.ssh/yy (本地的私钥地址)
3. 远程服务器配置公钥
(1)修改 ~/.ssh 文件夹的权限为 700
.ssh目录为700权限 $ chmod 700 -R .ssh
(2)在.ssh 文件夹下创建 authorized_keys 文件,修改权限为600
原来的文件:
-rw-------. 1 yuanyuan yuanyuan 833 12月 2 07:20 authorized_keys
修改: chmod 600 authorized_keys
(3)将步骤1生成的wyy.pub 内容复制到 authorized_keys中,注意: 一定不要有多余的空格或者其他字符 秘钥一旦污染 很难找出问题
4. 命令直接登录远端服务器
以上执行完毕后,在本地输入 ssh yy ,即可以登录到远端服务器,且是以2中设置的 User 的身份
注意:要特别注意文件夹和文件的权限问题!!!!:
文件authorized_keys 必须为600权限 :chmod 600 authorized_keys
文件夹.ssh目录必须为700权限 : $ chmod 700 -R .ssh
要保证.ssh和authorized_keys都只有用户自己有写权限(注意:并不是权限越大就什么就可以,要保证安全问题),否则验证无效,这样做是为了不会出现系统漏洞。
1.如何查看公钥和私钥是否匹配
1 用私钥文件生成对应的公钥
ssh-keygen -y -e -f .ssh/id_rsa
2 查看公钥与第1步中的输出公钥是否相同
cat /etc/.ssh/id_rsa.pub
2. 查看两个文件内容是否一样,用md5sum
md5sum 文件名
安装md5sum : brew install md5sha1sum