ubuntu添加openssh-server服务1
2sudo 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 server1
sudo /etc/init.d/ssh restart
从新使用shell5连接(用户名:ubuntu16,密码:ubuntu),报”SSH服务器拒绝了密码。请再试一次。”
什么情况网上都是修改配置后就可以使用了。。。
开始检查问题
1.查看进程是否存在1
2
3
4
5
6
7
8
9ubuntu@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
8ubuntu@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
2iptables -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
3ssh ubuntu16@localhost
按照提示输入yes后再输入密码后报
Permission denied,please try again
什么情况,容我好好考虑考虑,麻蛋用户名输错了,用户名应该是ubuntu不是ubuntu161
ssh ubuntu@localhost
登陆成功了
换到外面shell5试下,也成功了
但是为何我用桌面登陆时一直给的我这个界面呢
配置好用户登陆后并没有满足于此,现在都是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
11ubuntu@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
2adduser admin #创建名为mcxiaoke的新用户
gpasswd -a admin sudo #将用户admin添加到sudo用户组