1)在远程linux主机上:添加,编辑用户和组(需root用户权限)
% useradd -m -g users <username> #添加新用户并在/home下创建用户目录
% passwd <username>  #为新用户设置密码
% id <username>  #显示用户的id和所在分组信息
% groupadd admin  #添加admin组
% gpasswd -a <username> admin  #把用户添加到admin组内

此时 admin组的用户可以使用sudo命令,但是需要输入密码。

2)使admin组的用户使用sudo命令,不需要输入密码
% visudo

visudo命令 : 编辑/etc/sudoers文件

将admin组改成 %admin ALL=(ALL) NOPASSWD: ALL

这里写图片描述

% service ssh restart  #重启ssh

此时 admin组的用户使用sudo命令,不需要输入密码了.

3) 创建ssh-key
% su <username>   #切换到新用户
% ssh-keygen -C "<youremail>@<example>"  #创建当前用户的ssh_key(会在用户目录下创建.ssh文件夹,文件夹下有公钥和私钥)
4)在本地利用ssh连接远程主机

打开bash工具,在本地创建ssh_key:

% ssh-keygen -C "<youremail>@<example>" (会在C:\Users\Administrator目录下创建.ssh文件夹,文件夹下有公钥和私钥)

连接到远程linux主机(需要输入密码)

% ssh <username>@<ip> 

若不想重复输入 用户名和IP,可在C:\Users\Administrator.ssh文件夹中创建config文件(无扩展名)
在config文件中添加类似如下内容

Host  <nickname>
HostName  <ip>
Port  22
User  <username>

此时在bush中可通过 ssh <nickname> 连接远程远程linux主机(需要输入密码)

5)免密连接远程ubuntu服务器

把本地用户的id_rsa.pub(~/.ssh/id_rsa.pub) 上传到服务器某个用户的authorized_keys(~/.ssh/authorized_keys):

% ssh-copy-id <username>@<ip>   或者 
% ssh-copy-id  <nichname>

注:同一用户只能上传一次
这里写图片描述
此时再通过ssh登陆远程服务器就不需要输入密码了。

6)禁止用户通过ssh使用密码登陆远程登陆服务器,且禁止root登录

修改sshd_config 文件(/etc/ssh/sshd_config)

PermitRootLogin no    #禁止root登陆
PasswordAuthentication no   # 禁止使用密码登录

添加:

AllowGroups <groupname>  #允许groupname组登陆

重启ssh服务

% service ssh restart #重启ssh

此时已禁止用户通过ssh登陆root,并禁止使用密码登陆。

Logo

更多推荐