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

作者&投稿:东英 (若有异议请与网页底部的电邮联系)
~

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

1、两个deamon

要实现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、两个service

SLES12使用systemd管理系统服务,ssh服务对应/usr/lib/systemd/system/sshd.service文件,实现sftp服务时可以将/usr/lib/systemd/system/sshd.service复制到/etc/systemd/system/sftpd.service,然后修改sftpd.service文件内容。(使用修改好的sftpd.service文件即可)

3、其他文件系统的ssh服务是通过安装openssh实现的,可以通过rpm-qlopenssh查看该rpm包含哪些文件。总结实现ssh和sftp分离的相关的文件有:

ssh服务sftp服务

/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服务并没有真正的分离,此时已然可以通过22号端口使用ssh服务和sftp服务,而新开的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服务。可以用以下方式来规避:/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem参数配置(推荐使用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帐号的密码再回车确认即可。 如果该服务器的ssh端口不是默认的22端口,是自定义的一个如1234,则可在命令后面加参数-p, 如:“ssh192.168.1.102-lroot-p1234”

在Linux系统下使用SSH实现端口映射的方法?

从技术角度来分析,几个要求:

1、从安全方面看,sftp会更安全一点

2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动

3、用户只能使用sftp,不能ssh到机器进行操作

提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。

限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh4.8p1以后都支持chroot,我现在用的是centos6.3,自带的openssh已经是5.3p1,足够了。

可以输入:

#ssh-v

来查看openssh的版本,如果低于4.8p1,需要自行升级安装,不在这里具体介绍了。

假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动

1、创建sftp组

#groupaddsftp

2、创建一个sftp用户,名为mysftp

#useradd-gsftp-s/bin/falsemysftp

#passwdmysftp

3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/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/

forcecommandinternal-sftp

指定sftp命令

allowtcpforwardingno

x11forwardingno

这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉

5、设定chroot目录权限

#chownroot:sftp/data/sftp/mysftp

#chmod755/data/sftp/mysftp

错误的目录权限设定会导致在log中出现”fatal:badownershipormodesforchrootdirectoryxxxxxx”的内容

目录的权限设定有两个要点:

1、由chrootdirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root

2、由chrootdirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

所以遵循以上两个原则

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

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

6、建立sftp用户登入后可写入的目录

照上面设置后,在重启sshd服务后,用户mysftp已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限

#mkdir/data/sftp/mysftp/upload

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

#chmod755/data/sftp/mysftp/upload

7、重启sshd服务

#servicesshdrestart

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

如果还是不能在此目录下上传文件,提示没有权限,检查selinux是否关闭,可以使用如下指令关闭selinux

修改/etc/selinux/config文件中的selinux=""为disabled,然后重启。或者

#setenforce0

如何关闭linux下的ssh服务?

chkconfig--level2345sshdon--level指定系统在2345运行级别时,通常在35中开启就行,开启(on)sshd服务,关闭则用(off)临时控制启动停止则用:/etc/rc.d/init.d/sshdstart|stop|restart

ssh只能登linux吗?

ssh并不是只能登linux操作系统。ssh是unix操作系统用于远程登录的程序。

ssh的开源免费版是openssh,它源于openBSD操作系统。在服务器端启用sshd之后,就可以从远程登录服务器。目前所有类unix的操作系统都操供ssh服务。所以ssh能登录所有类unix操作系统。




linux ss命令
ss是Socket Statistics的缩写。ss命令可以用来获取socket统计信息,可以显示和netstat类似的内容。能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat \/proc\/net\/tcp,执行速度都会很慢。ss快是因为利用到了TCP...

linux下ps aux里头stat为Ss,S+, Rs,Ds是什么意思?
在Linux系统中,当我们在"ps aux"命令的输出中看到stat列的状态标识符Ss、S+、Rs、Ds时,它们分别代表了进程的不同运行状态。以下是它们的直观解释:- Ss:这个状态意味着进程处于休眠状态,即它并没有执行任何任务,但并未被系统完全关闭,它在等待某个事件的发生,如信号或资源释放。- S+:这里的...

Linux怎么使用ss命令查看系统的socket状态
[root@localhost ~]# ss state connected sport = :http [root@localhost ~]# ss \\( sport = :http or sport = :https \\) [root@localhost ~]# ss -o state fin-wait-1 \\( sport = :http or sport = :https \\) dst 192.168.1\/24 说明: ss dport OP PORT 远程端口和一个数比较;ss sport ...

Linux怎么使用ss命令查看系统的socket状态
Linux系统中,ss命令可用于查看系统的socket的状态。1、命令格式:ss [参数]ss [参数] [过滤]2、命令功能:ss(Socket Statistics的缩写)命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比 netstat 更快速高效。它使用了...

Linux里面ss -ntl命令作用是什么?
ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。《Linux就该这么学》有Linux命令大全 常用选项 -h, --help 帮助 -V, --version 显示版本号 -t, --tcp 显示 TCP 协议的 sockets -u, --udp ...

linux查看端口占用情况
以下是在Linux系统中查看端口占用情况的几个常用命令:1、netstat: 可以列出系统上所有的网络连接,包括协议、本地地址、外部地址、状态和进程ID等信息。例如,可以使用以下命令来查看系统上所有的TCP连接和它们使用的端口号:netstat -tnl 2、lsof: 可以列出系统上所有打开的文件和网络连接,包括协议、本地...

Linux下怎样查看某一端口是否开放?
使用以下命令来查看端口是否打开:lsof -i:其中,``是要查看的端口号。如果端口已打开,将显示与该端口相关的进程信息。3、使用`ss`命令`ss`是另一个强大的网络工具,用于查看套接字、网络接口和路由表等信息。使用以下命令来查看端口是否打开:ss -tuln | grep其中,``是要查询的端口号。运行上述命令后,如果输出...

linux查看端口占用情况
1、使用命令:Linux下可以使用netstat、lsof或ss命令来查看端口占用情况。这些命令提供了关于网络连接、端口状态和占用进程的详细信息。2、具体操作:通过运行netstat -tuln或ss -tuln可以查看所有正在监听的端口,而lsof -i则能列出所有打开的网络连接。特定端口的使用情况可以通过在这些命令后加上端口号来...

linux查看运行的端口命令
查询指定端口通过grep过滤:netstat-tnlp|grep:80使用ss检查端口ss是新的netstat,命令选项大致相同。它缺少一些netstat功能,但暴露了更多的TCP状态,而且速度稍快。linux查看端口号命令,为您提供linux查看端口号命令图文信息,打开linux系统,在linux的桌面的空白处右击。在弹出的下拉选项里,点击打开终端。

linux 进程中Ss 是什么意思
大S: 表示休眠状态 小s: 表示此为父进程, 它还有子进程 Ss就是两个在一起表示了

昂仁县18633467777: linux中如何查看远程端口 -
歹霄雷克: 终端里netstat -ntupl 可以直接键入netstat --help 得到参数说明

昂仁县18633467777: Linux查看端口的使用情况及启动方法?Linux各常用端口列表. -
歹霄雷克: Netstat后面的意思·Proto显示连接使用的协议. ·RefCnt表示连接到本套接口上的进程号. ·Types显示套接口的类型. ·State显示套接口当前的状态. ·Path表示连接到套接口的其它进程使用的路径名Netstat -tln 命令是用来查看linux的端...

昂仁县18633467777: linux使用什么命令查看端口 -
歹霄雷克: netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : 显示进程标识符和程序名称,每一个套接字/端口都...

昂仁县18633467777: kalilinux中ssh端口怎么打开? -
歹霄雷克: 开启ssh服务.抱歉我用的是centos.以centos为例子. 首先检测22端口: netstat -nalt | grep 22 如果没有监听22端口说明服务没有启动. service sshd start启动ssh服务.然后再查看有没有监听22端口. 一般linux默认开启ssh服务而且防火墙默认允许连接22端口,所以不存在防火墙和selinux的问题.

昂仁县18633467777: 怎样查看Linux正在使用的所有端口号 -
歹霄雷克: 使用命令netstat -antu可以查看所有tcp、udp端口开放情况 其中-a表示查看所有状态的端口,默认只看连接的 n表示显示数字端口号,而不显示名称,例如显示80而不是http t表示tcp端口 u表示udp端口

昂仁县18633467777: linux 怎么查看程序的端口 -
歹霄雷克: 使用lsof命令具体方法: lsof -i :port_number |grep "(LISTEN)" -i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口.port_number就是你要查找的端口号,譬如你要查找是否 有程序占用了oracle的监听端口1521...

昂仁县18633467777: 如何在Linux上检查SSH的版本 -
歹霄雷克: 查看ssh软件版本命令:#ssh -V 如果查看使用协议版本:检查本地OpenSSH服务器支持的SSH协议版本,你可以参考/etc/ssh/sshd_config这个文件.用文本编辑器打开/etc/ssh/sshd_config,并且查看“Protocol”字段.如果如下显示,就代表服务器只支持SSH2.Protocol 2如果如下显示,就代表服务器同时支持SSH1和SSH2.Protocol 1,2

昂仁县18633467777: linux如何查看正在使用的端口 -
歹霄雷克: 查看端口使用情况,使用netstat命令. 查看已经连接的服务端口(ESTABLISHED netstat -a 查看所有的服务端口(LISTEN,ESTABLISHED) netstat -ap 查看8080端口,则可以结合grep命令:netstat -ap | grep 8080 如查看8888端口!

昂仁县18633467777: linux怎么看端口号是否被占用 -
歹霄雷克: linux系统下,查看端口占用情况的命令:lsof -i1 [root@www ~]# lsof -i2 3 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME4 nginx 2333 root 6u IPv4 6242 TCP *:http (LISTEN)5 nginx 2334 www 6u IPv4 6242 TCP *:http (LISTEN)6 ...

昂仁县18633467777: 如何查看“linux服务器”IP和端口? -
歹霄雷克: 参考方法: 1、用netstat查看: 2、lsof-i:port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接.3、nmap端口扫描.4、文件/etc/services显示的各个服务的端口号:根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等. 具体步骤如下:/导致这种情况的原因主要是……

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网