Ubuntu SSH服务器搭建,Xshell使用

安装

sudo apt-get update #更新源列表
sudo apt-get install openssh-client
sudo apt-get install openssh-server
sudo service ssh start
sudo ps -e | grep ssh  # 查看是否启动

常用命令

sudo service ssh start/stop/reload/force-reload/restart/try-restart/status
sudo service ssh start # 启动
sudo service ssh restart # 重新启动
sudo service ssh stop  # 停止
sudo service ssh status  # 查看状态
sudo /etc/init.d/ssh start  # 启动
sudo /etc/init.d/ssh stop  # 停止
sudo systemctl start sshd

 

上述不好使

whereis sshd  # 查找sshd进程位置
/usr/sbin/sshd -D &

 

允许root用户ssh远程登录

因为安全问题默认是不启用root用户也不允许root远程登录的。所以需要先启用root用户

修改ssh的配置文件

找到文件

/etc/ssh/sshd_config

找到配置文件下面的地方

# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

修改为

# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes
StrictModes yes

重新启动ssh服务

sudo service sshd restart

修改root用户密码

sudo passwd root

远程登录进行测试

ssh username@192.168.1.112 

 

username为192.168.1.112 机器上的用户,需要输入密码。

问题汇总

SSH以前可以使用,但某一天使用中被强制退出,随后无法连接,报错:Xshell链接错误:Could notconnect to '192.168.18.128' (port 22): Connection failed.

查看SSH现在已建立的连接,发现虽然没有人正在使用,但还是有很多已被建立的连接,sudo service sshd restart 也无效

$ ps -ef | grep ssh
root         2456 18096  0 13:32 ?        00:00:00 sshd: 用户名 [priv]  
用户名        2463  2456  0 13:32 ?        00:00:00 sshd: 用户名@pts/4
用户名        3871  2464  0 13:34 pts/4    00:00:00 grep --color=auto ssh
root     18096     1  0 13:13 ?        00:00:00 /usr/sbin/sshd -D

解决办法:

sudo killall sshd  # 杀死所有sshd进程
sudo service sshd restart # 重启sshd服务

ssh能够连接而sftp不能连接的解决方法

作者:树遥儿
链接:https://www.jianshu.com/p/14e3532968ea

sudo /etc/init.d/sshd status

 发现sshd是running的,但是登录失败,ssh到这台机器是可以的,
下面找一下原因:

sudo tail /var/log/secure
Jul 27 15:26:31 iZuf66377q7u5teyfg3t6nZ sshd[582]: subsystem request for sftp
Jul 27 15:26:31 iZuf66377q7u5teyfg3t6nZ sshd[582]: error: subsystem: cannot stat /usr/lib/openssh/sftp-server: No such file or directory
Jul 27 15:26:31 iZuf66377q7u5teyfg3t6nZ sshd[582]: subsystem request for sftp failed, subsystem not found

可以看出是没有sftp-server的目录。
我们找一下sftp-server的路径地址

sudo locate sftp-server /usr/libexec/openssh/sftp-server /usr/share/man/man8/sftp-server.8.gz

然后打开配置:

vi /etc/ssh/sshd_config 

Subsystem sftp /usr/lib/openssh/sftp-server
改成Subsystem sftp /usr/libexec/openssh/sftp-server
然后reload一下sshd

sudo /etc/init.d/sshd reload

参考地址:

http://114.115.240.75/?p=709

posted @ 2019-06-24 14:23  逐梦客!  阅读(314)  评论(0)    收藏  举报