【系统搭建系列】ubuntu创建用户与分配权限

ubuntu添加openssh-server服务

1
2
sudo apt-get openssh-server
sudo -s//进入root用户

修改ssh服务配置ubuntu默认无法用户ssh登陆

1
vim /ect/ssh/sshd_config

找到配置项

1
PermitRootLogin without-password

修改为

1
2
#PermitRootLogin without-password 
PermitRootLogin yes

重新启动ssh server

1
sudo /etc/init.d/ssh restart

从新使用shell5连接(用户名:ubuntu16,密码:ubuntu),报”SSH服务器拒绝了密码。请再试一次。”

什么情况网上都是修改配置后就可以使用了。。。
开始检查问题
1.查看进程是否存在

1
2
3
4
5
6
7
8
9
ubuntu@ubuntu:/$ ps -e|grep ssh
2189 ? 00:00:00 sshd
2251 pts/1 00:00:00 ssh
2252 ? 00:00:00 sshd
2307 ? 00:00:00 sshd
2343 ? 00:00:00 sshd
2372 ? 00:00:00 sshd
2621 ? 00:00:00 sshd
2650 ? 00:00:00 sshd

结果显示没有问题啊
2.查看端口号是否存在

1
2
3
4
5
6
7
8
ubuntu@ubuntu:/$ netstat -a|grep ssh
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:53774 localhost:ssh ESTABLISHED
tcp 0 36 192.168.1.133:ssh 192.168.233.1:58220 ESTABLISHED
tcp 0 0 localhost:ssh localhost:53774 ESTABLISHED
tcp 0 0 192.168.1.133:ssh 192.168.233.1:58027 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 17307 /run/user/1000/keyring/ssh

发现ssh使用的22端口号没有啊,怎么办呢,重新启动ssh server,结果依然报”SSH服务器拒绝了密码。请再试一次。”。
3.配置22端口可以外部访问

1
2
iptables -A INPUT -p tcp -m tcp --sport 22 -j ACCEPT 
iptables -A OUTPUT -p tcp -m tcp -sport 22 -j ACCEPT

重新启动ssh server,结果依然报”SSH服务器拒绝了密码。请再试一次。”。
4.查看本地是否可以连接自己

1
2
3
ssh ubuntu16@localhost
按照提示输入yes后再输入密码后报
Permission denied,please try again

什么情况,容我好好考虑考虑,麻蛋用户名输错了,用户名应该是ubuntu不是ubuntu16

1
ssh ubuntu@localhost

登陆成功了
换到外面shell5试下,也成功了
但是为何我用桌面登陆时一直给的我这个界面呢
ShowImage
配置好用户登陆后并没有满足于此,现在都是ssh无密码登陆好吧,接下来就要改为ssh无密码登陆咯
1.shell5生成用户秘钥,把公钥添加到服务器authorized_keys文件内

1
2
3
4
5
6
先生成本机的秘钥(主要是为了生成~/.ssh文件夹)
ssh-keygen
在authorized_keys文件内添加客户端公钥,可以添加多个哦
vim ~/.ssh/authorized_keys
修改ssh server配置(sshd_config为服务端文件、ssh_config为客户端文件)
vim /etc/ssh/sshd_config

修改登陆用户不需要密码和放开客户端公钥存放的位置配置

1
2
3
4
5
6
7
8
9
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

修改后

1
2
3
4
5
6
7
8
9
# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
#PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

用shell5连接一下试试,报“ssh所选用的用户秘钥未在远程主机上注册”。
网上查了一下资料:
必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。

1
~/.ssh$ chmod 644 authorized_keys

用shell5连接一下,可以无密码连接。说明成功了
那我们还可以用服务器上的客户端加进去看两用户是否都可以连接

1
2
3
4
5
6
7
8
9
10
11
ubuntu@ubuntu:~$ ~/.ssh$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ubuntu@ubuntu:~$ ssh ubuntu@localhost
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)

* Documentation: https://help.ubuntu.com/

415 packages can be updated.
133 updates are security updates.

Last login: Sun Nov 20 18:40:35 2016 from 127.0.0.1
ubuntu@ubuntu:~$ exit

现在就无密码的快乐的玩耍了。
添加用户

1
2
adduser admin #创建名为mcxiaoke的新用户
gpasswd -a admin sudo #将用户admin添加到sudo用户组