刚才突然无法用ssh连到服务器了,以为是关机了或者网络断了,试着ping了一下,可以ping通。
幸好开了VNC,可以通过VNC到系统里,查看了一下sshd这个服务的状态,是stopped,于是试着启动sshd服务:
[root@server1 ~]# service sshd start
Starting sshd: /etc/ssh/sshd_config line 149: Directive 'SyslogFacility' is not allowed
within a Match block
[FAILED]
启动失败。。。看了一下配置文件的内容:
MaxAuthTries=5
以下是配置SFTP的内容
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/data/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
以上是配置SFTP的内容
149行:SyslogFacility AUTHPRIV
跟其他服务器对比了一下,其他服务器的ssh配置文件都没有这149行的内容啊,百度了一下,也有类似的报错信息,按照网上的方法,把149行的内容给放到SFTP内容的前面,也就是说不要放到最后。然后service sshd start可以正常启动服务。
但是。。。过了几分钟,我又查看了ssh服务的状态,又是stopped了。再次start,报错提示还是跟以前
一样,又看了ssh配置文件,149行的内容 虽然我刚才把它放前面了,但是现在又跑到最后面了,于是再
放到前面 再启动服务。。。过了几分钟后,问题依旧
所以,我想请问大家,这行的内容是什么意思呢?为何会有这行,而其他相同系统环境的服务器就没有
这行内容唉。。这个问题如何解决呢?
使用nohup命令让程序在关闭窗口(切换SSH连接)的时候程序还能继续在后台运行。
Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用& 在程序结尾来让程序自动运行。比如我们要运行mysql在后台:
/usr/local/mysql/bin/mysqld_safe --user=mysql &
但是加入我们很多程序并不象mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用& 结尾,但是如果终端关闭,那么程序也会被关闭。但是为了能够后台运行,那么我们就可以使用nohup这个命令,比如我们有个test.php需要在后台运行,并且希望在后台能够定期运行,那么就使用nohup:
nohup /root/test.php &
提示:
[~]$ appending output to nohup.out
嗯,证明运行成功,同时把程序运行的输出信息放到当前目录的nohup.out 文件中去。
难道是我的SFTP配置不对嘛?以下是sftp配置过程
mkdir -p /sftp/data/mysftp
groupadd sftp
useradd -g sftp -s /bin/false mysftp
passwd mysftp
usermod -d /sftp/data/mysftp mysftp
vi /etc/ssh/sshd_config编辑这个配置文件,注释掉下面这行(这个时候,配置文件里还没有149行的内容)
添加如下内容
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/data/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
修改目录权限:
chown root:sftp /sftp/data/mysftp
chmod 755 /sftp/data/mysftp
mkdir /sftp/data/mysftp/upload
chown mysftp:sftp /sftp/data/mysftp/upload
chmod 755 /sftp/data/mysftp/upload
经过以上配置,我测试了用工具是可以用sftp来上传下载文件的
收起