linux ssh 命令端口 centos查看ssh端口
大家好,关于linux ssh 命令端口很多朋友都还不太明白,今天小编就来为大家分享关于centos查看ssh端口的知识,希望对各位有所帮助!
在linux下登录ssh如何指定端口
在Linux系统中,想要通过SSH进行远程登录并指定特定端口,操作相当直接。首先,SSH默认使用的端口是22,但你可以根据需要更改。以下是详细的步骤:
1.打开终端,开始连接过程。通常情况下,你不需要手动更改端口,但如果你希望指定其他端口,如2222,这就需要进行一些配置。
2.使用文本编辑器,如VI或者vim,打开SSH服务的配置文件sshd_config。在文件中,找到"port"这一行,通常默认配置下其值为22。
3.使用命令行复制这一行(如yy),然后进入插入模式(insert)。在这里,将22更改为你想要的特定端口号,例如2222。
4.修改完毕后,按保存并退出键(wq),这就意味着你已经成功地在配置文件中添加了一个新的端口号2222,它将成为你的指定登录端口。
5.为了使更改生效,你需要重启SSH服务。这样,下次尝试SSH登录时,系统将使用你指定的2222端口,而不是默认的22端口。
总的来说,Linux下登录SSH指定端口的步骤包括找到并编辑配置文件,修改端口号,然后重启服务以应用更改。这样,你就可以根据需要灵活地管理你的系统了。
查看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的含义,可以参考这里:
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下登录ssh怎么指定端口
命令是:
ssh-p 22用户名@hostname/ip:-p 22这个就是端口的指定
ssh常用用法:1.无选项参数运行 SSH
通常使用 SSH的方式就是不加任何选项参数,仅仅输入"ssh"。下面是示例:
$ ssh 192.168.0.103
第一次连接目标主机时,ssh会请求确认目标主机的真实性。如果回答的是NO,SSH将不会继续连接,只有回答Yes才会继续。
下一次再登陆此主机时,SSH就不会提示确认消息了。对此主机的真实验证信息已经默认保存在每个用户的/home/user/.ssh文件里。
2.指定登陆用户
默认的,ssh会尝试用当前用户作为用户名来连接。在上面的示例命令中,ssh会尝试用用户名叫 pungki的用户身份来登入服务器,这是因为用户 pungki正在客户机上使用 ssh客户端软件。
假如目标主机上没有叫 pungki的用户呢?这时你就必须提供一个目标主机上存在的用户名。从一开始就要指定用户名的,可以使用-l选项参数。
$ ssh-l leni192.168.0.103
我们也可以这样输入:
$ sshleni@192.168.0.0103
3.指定端口
SSH默认使用的端口号是 22。大多现代的 Linux系统 22端口都是开放的。如果运行 ssh程序而没有指定端口号,它直接就是通过 22端口发送请求的。
一些系统管理员会改变 SSH的默认端口号。现在端口号是 1234.要连上那主机,就要使用**-p*选项,后面在加上 SSH端口号。
$ ssh 192.168.0.103-p 1234
要改变端口号,我需要修改/etc/ssh/ssh_config文件,找到此行:
Port 22
把它换成其他的端口号,比如上面示例的 1234端口,然后重启 SSH服务。
4.对所有数据请求压缩
有了这个选项,所有通过 SSH发送或接收的数据将会被压缩,并且任然是加密的。要使用 SSH的压缩功能,使用-C选项。
$ ssh-C192.168.0.103
如果连网速度很慢的话,比如用 modem上网,这个选项非常有用。但如果使用的是像 LAN或其它更高级网络的话,压缩反而会降低你的传输速度。可以使用-o选项加上压缩级别参数来控制压缩的级别,但这个选项仅仅只在 SSH-1下起作用。
5.指定一个加密算法
SSH提供了一些可用的加密算法。可以在*/etc/ssh/ssh_config or~/.ssh/config*文件中看到(如果存在的话)。
如果想使用blowfish算法来加密 SSH会话,那么只要把这一行加入/etc/ssh/ssh_configor~/.ssh/config文件就可以:
Cipher blowfish
默认的,SSH会使用 3des算法。
6.打开调试模式
因为某些原因如果想要追踪调试建立的 SSH连接情况。SSH提供的-v选项参数正是为此而设的。
$ ssh-v192.168.0.103
7.绑定源地址
如果客户端有多于两个以上的 IP地址,就不可能分得清楚在使用哪一个 IP连接到 SSH服务器。
为了解决这种情况,可以使用-b选项来指定一个IP地址。这个 IP将会被使用做建立连接的源地址。
$ ssh-b192.168.0.200-l leni 192.168.0.103
服务端,可以使用 netstat命令来检查到服务的连接是否建立。可以看到 IP为192.168.0.200的连接已经建立。
8.使用其他配置文件
默认情况下,ssh会使用位于/etc/ssh/ssh_config的配置文件。这个配置文件作用于系统的所有用户。但想要为特定的用户指定特殊的设置的话,可以把配置放入~/.ssh/config文件中。如果此文件不存在,可以手工创建一个。
下面是一个通用ssh_config文件配置的例子。这配置文件位于/home/pungki目录下。
Host 192.168.0.*
ForwardX11 yes
PasswordAuthentication yes
ConnectTimeout 10
Ciphersaes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
Protocol 2
HashKnownHosts yes
要使用指定的配置文件,可以使用-F选项。
$ ssh-F/home/pungki/my_ssh_config 192.168.0.101
9.使用 SSH X11 Forwarding
某些时候可能想把服务端的 X11应用程序显示到客户端计算机上,SSH提供了-X选项。但要启用这功能需要做些准备,下面是它的设置:
在服务器端,需要使/etc/ssh/ssh_config文件中的行设置成ForwardX11 yes或者 X11Forwadyes,以启用 X11 Forwarding,重启 SSH服务程序。
然后在客户端,输入ssh-X user@host:
$ ssh-Xleni@192.168.0.101
一旦登陆,可以输入:
$ echo$DISPLAY
来检查,应该可以看到向如下所示的
localhost:10:0
随后就可以运行应用了,仅仅只能输入应用程序的命令。如果想运行 xclock程序,输入:
$ xclock
它就运行起来了,xclock确实是运行在远端系统的,但它在本地系统里显示了。