查看linux的ssh端口查看Linux的ssh

Linux下如何配置ssh和sftp使用不同的端口号?

1.两个守护进程

要分离ssh和sftp并分别监听不同的端口,可以创建两个后台程序'/usr/sbin/sshd',一个监听22端口(ssh),一个监听20022端口(sftp),为了区分ssh和sftp服务后台程序,将ssh服务后台程序保存为/usr/sbin/sshd,sftp服务后台程序改为/usr/sbin/sftpd。
/usr/sbin/sftpd是/usr/sbin/sshd的链接,内容完全相同(ln-sf/usr/sbin/sshd/usr/sbin/sftpd)。

2.两个服务

SLES12使用systemd来管理service系统服务,/将usr/lib/systemd/system/sshd.service复制到/etc/systemd/system/sftpd.service,然后修改内容sftpd文件.service。
(使用修改后的sftpd.service文件即可)

3其他文件系统ssh服务通过安装openssh实现可以使用rpm-qlopenssh查看rpm中包含了哪些文件。
总结一下实现ssh和sftp分离的相关文件:

servicesshsftp服务

/usr/lib/systemd/system/sshd.service/etc/systemd/system/sftpd.service(通过修改/usr/lib/systemd/system/sshd.service文件)

/etc/pam.d/sshd/etc/pam.d/sftpd(通过复制文件/etc/pam.d/sshd获得)

/etc/ssh/sshd_config/etc/ssh/sftpd_config(通过复制文件获得/etc/ssh/sshd_config)

/usr/sbin/rcsshd/usr/sbin/rcsftpd(ln-sf/usr/sbin/service/usr/sbin/rcsftpd)

/usr/sbin/sshd/usr/sbin/sftpd(ln-sf/usr/sbin/sshd/usr/sbin/sftpd)

/etc/sysconfig/ssh/etc/sysconfig/sftp(通过修改/etc/sysconfig/ssh文件获得)

到目前为止,我们已经实现了两项服务。

但是ssh服务和sftp服务并没有真正分离,目前ssh服务和sftp服务已经可以通过22端口使用,新开放的20022端口也可以。
使用ssh服务(ssh-p20022username@serverip)和sftp服务(sftp-oPort=20022username@serverip)。

4.关闭22端口下的sftp服务。
编辑/usr/sbin/sshd的配置文件/etc/ssh/sshd_config,注释掉Subsystem参数,然后重新启动sshd设置22端口用户的可访问性白名单:编辑文件/etc/ssh/sshd_config并设置AllowGroups参数(假设设置为AllowGroupssshonly),限制只有AllowGroups组中的用户才能登录22端口通过ssh登录系统(需要通过ssh登录系统的用户可以通过usermod-Asshonlyusername>添加到AllowGroups组)

5.》关闭20022端口下的ssh服务。
sftp作为子服务,依赖于ssh服务,因此无法关闭ssh服务,只能打开sftp服务。
可以使用如下方法绕过:配置文件/etc/usr/sbin/sftpd中的/ssh/sftpd_config包含子系统参数配置(建议使用Subsystemsftpinternal-sftp-lINFO-fAUTH)/etc/ssh/sftpd_config中包含AllowGroups参数(假设为AllowGroupssftponly),仅限制AllowGroups组中的用户访问20022端口。
将AllowGroups组中用户的shell更改为/bin/false(usermod-s/bin/falseusername>),这样AllowGroups组的用户只能通过sftp登录系统(如果用户同时需要ssh和sftp,则shell不能改为/bin/false)

6.配置好用户白名单后,需要将需要ssh访问系统的用户添加到sshonly组中,即需要的用户sftp访问系统必须添加到sftponly组,而同时需要ssh和sftp的用户则必须同时添加sshonly和sftponly组。

7.重新启动ssh服务和sftp服务,并设置开机启动

servicesshdrestartservicesftpdrestart

Linux如何通过ssh访问其他服务器?

例如:如果使用root账号连接IP地址为192.168.1.102的机器,输入:“ssh192.168.1.102-lroot”,回车后输入root账号的密码,然后按Enter确认。
如果服务器的SSH端口不是默认的22端口,而是自定义端口如1234,可以在命令后添加-p参数,如:“ssh192.168.1.102-lroot-p1234”

Linux系统下如何使用SSH进行端口映射?

从技术角度让用户在自己的家目录下进行操作

3只能使用sftp,不能通过SSH到本机进行操作

提供服务sftp,可以使用系统自带的内部sftp,也可以使用这里需要的vsftpd,所以使用internal-sftp即可。

限制用户只能在自己的主目录下活动这里需要使用chroot,然后支持chroot,内置的openssh已经是5.3p1.,足够了。

可以输入:

#ssh-v

查看openssh版本如果低于4.8p1,需要自行升级安装就不详细介绍了。

假设有一个名为sftp的组,该组中的用户只能使用sftp,不能使用ssh,并且sftp登录后只能在自己的主目录下进行操作。

1.创建sftp组

#groupaddsftp

2.创建名为mysftp的sftp用户

#useradd-gsftp-s/bin/falsemysftp

#passwdmysftp

3个目录统一分配到/dat/sftp下,通过用户名区分这里先创建一个mysftp目录,然后指定mysftphome为/data/sftp/mysftp

#mkdir-p/data/sftp/mysftp

#usermod-d/data/sftp/mysftpmysftp

4。
配置sshd_config

编辑/etc/ssh/sshd_config

#vim+132/etc/ssh/sshd_config

找到以下行并注释掉

subsystemsftp/usr/libexec/openssh/sftp-server

添加以下行

subsystemsftpinternal-sftp

matchgroupsftp

chrootdirectory/data/sftp/%u

forcecommandinternal-sftp

allowtcpforwardingno

x11forwardingno

解释一下添加的行的含义

subsystemsftpinternal-sftp

这行指定使用sftp服务来使用系统自动使用internal-sftp

matchgroupsftp

这一行是用来匹配sftp组中的用户的,如果要匹配多个组,用逗号分隔

当然可以。
还可以匹配用户

matchusermysftp

这样就可以匹配用户了。
多个用户名也是用逗号分隔,不过这里按组匹配更加灵活方便

chrootdirectory/data/sftp/%u

使用chroot指定用户根目录为/data/sftp/%u,%u代表用户名,所以用户只能在/data/sftp/%u下进行操作对于chroot,可以参考这里:http://www.ibm.com/developerworks/cn/linux/l。
-cn-chroot/

forrcecommandinternal-sftp

指定第二个sftp命令

allowtcpforwardingno

x11forwardingno

-这两行,如果不希望用户能够使用端口转发如果是则添加,如果不是则删除

5设置目录权限chroot

#chownroot:sftp/data/sftp/mysftp

#chmod755/data。
/sftp/mysftp

不正确的目录权限设置会导致日志中出现“fatal:badownershipormodesforchrootdirectoryxxxxxx”

目录权限设置主要有两点:

通过chrootdirect从ory指定的目录开始,上升到系统根目录,该目录的所有者只能是root

2chrootdirectory指定的目录,从头开始,上升到系统根目录系统目录不能有写权限group

所以遵循以上两个原则

1)我们将/data/sftp/mysftp的所有者设置为root,将所有组设置为sftp

2)我们将/data/sftp/mysftp的权限设置为755,所有者root有写权限,但所有sftp组没有写权限

6.创建sftp用户登录后可以写入的目录

完成以上设置后,重启sshd服务后,mysftp用户已经可以登录了,但是使用chroot指定根目录后,root不能写入,所以需要新建一个目录供mysftp上传文件。
该目录的所有者是mysftp,所有组都是sftp,所有者有写权限,但所有组没有写权限

#mkdir/data/sftp/mysftp/upload

#chownmysftp:sftp/data/sftp/mysftp/upload

#chmod755/data/sftp/mysftp/upload

7重启sshd服务

#servicesshdrestart

这里,myftp。
您已经可以通过sftp客户端登录并将文件上传到上传目录。

/etc/selinux/config=""禁用,然后重新启动。
或者

#setenforce0

如何在Linux下禁用ssh服务?

chkconfig--level2345sshdon--level指定当系统运行在2345级时,通常在35级就可以开启了。
要开启(turnon)sshd服务,使用(off)临时控制服务的启动和停止:/etc/rc.d/init.d/sshdstart|stop|restart

ssh可以直接登录Linux吗?

ssh不仅仅可以登录Linux操作系统。
ssh是unix操作系统用来远程登录的程序。

ssh的开源免费版本是openssh,它源自openBSD操作系统。
服务器端启用sshd后,就可以远程登录服务器了。
目前,所有类Unix操作系统都提供ssh服务。
因此,ssh可以登录所有类unix操作系统。

xftp和ftp进程的保留端口号分别是多少???

XFtp使用SFTP。
SFTP的默认端口是22。
实际上,SFTP使用的是SSD进程的端口(端口22)。
FTP端口号20和21的区别在于,一个是数据端口,另一个是控制端口。
控制端口一般是21,而数据端口不一定是20。
这与FTP的应用方式有关。
如果是活动模式,则应为20。
如果是被动模式,这是由服务器和客户端协商决定的。
Linux使用以下命令检查哪个进程正在使用特定端口:#netstat-lnp|grep22