sshd的配置文件是us|如何在linux下配置ssh和sftp使用不同的端口号

⑴ sshd配置文件的讲解

一、ssh详解1、什么是ssh简单来说,ssh是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用ssh协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。 需要指出的是,ssh只有一种协议,存在多种实现,既有商业实现,也有开源实现。2、基本用法(1)、使用某个用户(例如user)登录远程主机host命令:ssh [email protected](2)、如果本地用户名和远程用户名一致,则登录时可以省略用户名命令:ssh host(3)、ssh的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用-p参数,可以修改这个端口命令:ssh –p 端口号 [email protected]

⑵ linux怎么限制用户ssh登录允许sftp登录

Linux系统可以通过sshd的配置项,禁止某些用户sftp登陆,方法如下:1、打开sshd的配置文件vi/etc/ssh/sshd_config2、修改该配置文件,增加或修改如下行# 禁止用户user1登陆,多个用户空格分隔DenyUsers user1# 禁止用户组group1的所有用户登录,多个空格分隔DenyGroups group13、保存配置后,重启sshd/etc/rc.d/init.d/sshd restart#完成上面的配置后,就可以禁止用户或用户组的用户进行SFTP登录4、配置完毕后,在其它linux机器上使用如下命令进行测试# 使用ssh测试[[email protected] ~]# ssh [email protected][email protected]'s password:Permission denied, please try again.# 使用sftp测试[[email protected] ~]# sftp [email protected][email protected]'s password:Permission denied, please try again.#Permission denied 授权被拒绝,已经实现禁用该用户使用sftp

⑶ 如何限制用户使用 SSH 登入系统

在linux中出于安全的需要,我们会禁止某些用户SSH登陆系统进行操作。我这里以centos操作系统为例记录下如何进行处理。1、打开sshd的配置文件vi /etc/ssh/sshd_config2、修改该配置文件,增加或修改如下行# 禁止用户user1登陆,多个空格分隔DenyUsers user1 # 禁止用户组group1的所有用户登录,多个空格分隔DenyGroups group13、保存配置后,重启sshd/etc/rc.d/init.d/sshd restart 完成上面的配置后,就可以禁止用户或用户组的用户进行登录了,第2步中的两个是可以只填一个的,可以根据需要进行调整。配置完毕后,在其他linux机器上使用如下命令进行测试:# 使用ssh测试[[email protected] ~]# ssh [email protected]@192.168.1.168's password: Permission denied, please try again. # 使用sftp测试[[email protected] ~]# sftp [email protected]@192.168.1.168's password: Permission denied, please try again. 可以看到,确实被系统禁止了,从而也就完成了我们想要的控制了。但这个有一个缺陷是,无法禁止只允许sftp而不允许ssh,如果要这样做,估计只能够单独搭建ftp服务器,比如vsftp,后续再考虑这个。

⑷ Linux下SSH和SSHD区别是什么

ssh是客户端连接工龄,sshd是服务端进程。ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。SSH是Secure Shell的缩写,也叫做安全外壳协议。SSH的主要目的是实现安全远程登录。《Linux就该这么学》了解更多linux内容

⑸ Linux下的ssh的配置文件。

sshd 是指 ssh daemon进程的配置文件, sshd_config也就是ssh server 的配置文件.ssh_config 是ssh的client的配置文件

⑹ 如何搭载Linux服务器

开发网站的时候,常常需要自己配置Linux服务器。本文记录配置Linux服务器的初步流程,也就是系统安装完成后,下一步要做的事情。这主要是我自己的总结和备忘,如果有遗漏,欢迎大家补充。下面的操作针对Debian/Ubuntu系统,其他Linux系统也类似,就是部分命令稍有不同。第一步:root用户登录首先,使用root用户登录远程主机(假定IP地址是128.199.209.242)。ssh [email protected]这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。接着,修改root用户的密码。passwd第二步:新建用户首先,添加一个用户组(这里假定为admin用户组)。addgroup admin然后,添加一个新用户(假定为bill)。useradd -d /home/bill -s /bin/bash -m bill 上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。接着,设置新用户的密码。passwd bill 将新用户(bill)添加到用户组(admin)。usermod -a -G admin bill 接着,为新用户设定sudo权限。visudo visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。root ALL=(ALL:ALL) ALL在这一行的下面,再添加一行。root ALL=(ALL:ALL) ALLbill ALL=(ALL) NOPASSWD: ALL上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。root ALL=(ALL:ALL) ALLbill ALL=(ALL:ALL) ALL然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。exitssh [email protected]第三步:SSH设置首先,确定本机有SSH公钥(一般是文件~/.ssh/id_rsa.pub),如果没有的话,使用ssh-keygen命令生成一个(可参考我写的SSH教程)。在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的authorized_keys文件。cat ~/.ssh/id_rsa.pub | ssh [email protected] 'mkdir -p .ssh && cat – >> ~/.ssh/authorized_keys'# 或者在服务器端,运行下面命令echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys然后,进入服务器,编辑SSH配置文件/etc/ssh/sshd_config。sudo cp /etc/ssh/sshd_config ~sudo nano /etc/ssh/sshd_config在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000)。Port 25000然后,检查几个设置是否设成下面这样,确保去除前面的#号。Protocol 2PermitRootLogin noPermitEmptyPasswords noPasswordAuthentication noRSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysUseDNS no上面主要是禁止root用户登录,以及禁止用密码方式登录。接着,在配置文件的末尾,指定允许登陆的用户。AllowUsers bill保存后,退出文件编辑。接着,改变authorized_keys文件的权限。sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/然后,重启SSHD。sudo service ssh restart# 或者sudo /etc/init.d/ssh restart下面的一步是可选的。在本机~/.ssh文件夹下创建config文件,内容如下。Host s1HostName 128.199.209.242User billPort 25000最后,在本机另开一个shell窗口,测试SSH能否顺利登录。ssh s1第四步:运行环境配置首先,检查服务器的区域设置。locale如果结果不是en_US.UTF-8,建议都设成它。sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8sudo dpkg-reconfigure locales然后,更新软件。sudo apt-get updatesudo apt-get upgrade最后,再根据需要,做一些安全设置,比如搭建防火墙,关闭HTTP、HTTPs、SSH以外的端口,再比如安装Fail2Ban,详细可参考这篇《Securing a Linux Server》。

⑺ ssh如何实现自定义的ssh协议

高级SSH安全技巧在这篇文章中我将为你展示一些简单的技巧,帮助你提高你的SSH服务的安全。SSH服务器配置文件是/etc/ssh/sshd_conf。在你对它进行每一次改动后都需要重新启动SSH服务,以便让改动生效。1、修改SSH监听端口默认情况下,SSH监听连接端口22,攻击者使用端口扫描软件就可以看到主机是否运行有SSH服务,将SSH端口修改为大于1024的端口是一个明智的选择,因为大多数端口扫描软件(包括nmap)默认情况都不扫描高位端口。打开/etc/ssh/sshd_config文件并查找下面这样的行:Port22修改端口号并重新启动SSH服务:/etc/init.d/sshrestart2、仅允许SSH协议版本2有两个SSH协议版本,仅使用SSH协议版本2会更安全,SSH协议版本1有安全问题,包括中间人攻击(man-in-the-middle)和注入(insertion)攻击。编辑/etc/ssh/sshd_config文件并查找下面这样的行:Protocol2,1修改为Protocol23、仅允许特定的用户通过SSH登陆你不一个允许root用户通过SSH登陆,因为这是一个巨大的不必要的安全风险,如果一个攻击者获得root权限登陆到你的系统,相对他获得一个普通用户权限能造成更大的破坏,配置SSH服务器不允许root用户通过SSH登陆,查找下面这样的行:PermitRootLoginyes将yes修改为no,然后重新启动服务。现在,如果你想使用特权用户,你可以先以其他用户登陆,然后再转换到root。创建一个没有实际权限的虚拟用户是一个明智的选择,用这个用户登陆SSH,即使这个用户遭到破解也不会引起什么破坏,当创建这个用户时,确保它属于wheel组,因为那样你才能切换到特权用户。如果你想让一列用户都能通过SSH登陆,你可以在sshd_config文件中指定它们,例如:我想让用户anze、dasa、kimy能通过SSH登陆,在sshd_config文件的末尾我添加下面这样一行:AllowUsersanzedasakimy4、创建一个自定义SSHbanner如果你想让任何连接到你SSH服务的用户看到一条特殊的消息,你可以创建一个自定义SSHbanner,只需要创建一个文本文件(我的是/etc/ssh-banner.txt),然后输入你想的任何文本消息,如:*ThisisaprivateSSHservice.Youarenotsupposedtobehere.**Pleaseleaveimmediately.*编辑好后,保存这个文件,在sshd_config中查找下面这样一行:#Banner/etc/issue.net取消掉注释【将#去掉】,然后将路径修改为你自定义的SSHbanner文本文件。5、使用DSA公钥认证代替使用用户名和密码对SSH进行认证,你可以使用DSA公钥进行认证,注意你既可以使用登陆名,也可以使用DSA公钥进行认证,使用DSA公钥认证可以预防你的系统遭受字典攻击,因为你不需要用登陆名和密码登陆SSH服务,而是需要一对DSA密钥,一个公钥和一个私钥,在你本地机器上保存私钥,将公钥放在服务器上。当你发起一个SSH登陆会话时,服务器检查密钥,如果它们匹配的话,你就可以直接进入shell,如果它们不匹配,你的连接将被自动断开。在本例中的私人计算机叫‘工作站1’,服务器叫‘服务器1’。在两个机器上我有相同的home目录,如果服务器和客户端上的home目录不同将不能工作,实现,你需要在你的私人计算机上创建一对密钥,命令:~$ssh-keygen-tdsa,它将要求你为私钥输入一个密语,但是你可以保留为空,因为这不是一个推荐的做法。密钥对创建好了:你的私钥在~/.ssh/id_dsa,你的公钥在.ssh/id_dsa.pub。接下来,拷贝~/.ssh/id_dsa.pub中的内容到‘服务器1’的~/.ssh/authorized_keys文件中,~/.ssh/id_dsa.pub的内容看起来象下面这样:~$cat.ssh/id_dsa.pubssh-DusNGAIC0oZkBWLnmDu+/Fm4yROHGe0FO7FV4lGCUIlqa55+QP9Vvco7qyBdIpDuNV0LAAAAFQC/+OJC8+WDs9/taNIhBbqri10RGL5gh4AAACAJj1/rV7iktOYuVyqV3BAz3JHoaf+H/dUDtX+wuTuJpl+tfDf61rbWOqrARuHFRF0Tu/Rx4oOZzadLQovafqrDnU/No0Zge+1/[email protected]如果文件~/.ssh/authorized_keys已经存在,请将上面的内容附加在该文件的后面。剩下的只是给该文件设置正确的权限了:~$chmod600~/.ssh/authorized_keys现在,配置sshd_config文件使用DSA密钥认证,确保你将下面三行前的注释去掉了:%h/.ssh/authorized_keys重新启动服务,如果你的配置没有错误,现在你就可以SSH到你的服务器,而且无需任何交互动作(如输入用户名和密码)就直接进入你的home目录了。如果你只想使用DSA认证登陆,确保你在sshd_config中取消掉注释并修改PasswordAuthentication这一行,将yes改为no:PasswordAuthenticationno任何在服务器上没有公钥的人试图连接到你的SSH服务,它就被拒绝,给它显示如下一个拒绝提示信息:Permissiondenied(publickey).6、使用TCPwrappers仅允许指定的主机连接如果你想在你的网络上只允许特定的主机才能连接到你的SSH服务,但又不想使用或弄乱你的iptables配置,那这个方法非常有用,你可以使用TCPwrappers。在这个例子中对sshd进行TCP包裹,我将创建一条规则允许本地子网192.168.1.0/24和远程193.180.177.13的自己连接到我的SSH服务。默认情况下,TCPwrappers首先在/etc/hosts.deny中查找看主机是否允许访问该服务,接下来,TCPwrappers查找/etc/hosts.allow看是否有规则允许该主机服务指定的服务,我将在/etc/hosts.deny中创建一个规则,如下:sshd:ALL这意味着默认情况下所有主机被拒绝访问SSH服务,这是应该的,否则所有主机都能访问SSH服务,因为TCPwrappers首先在hosts.deny中查找,如果这里没有关于阻止SSH服务的规则,任何主机都可以连接。接下来,在/etc/hosts.allow中创建一个规则允许指定的主机使用SSH服务:sshd:192.168.1193.180.177.13现在,只有来自192.168.1.0/24和193.180.177.13的主机能够访问SSH服务了,其他主机在连接时还没有到登陆提示符时就被断开了,并收到错误提示,如下:ssh_exchange_identification:Connectionclosedbyremotehost7、使用iptables允许特定的主机连接作为TCPwrappers的一个代替品,你可以使用iptables来限制SSH访问(但可以同时使用这个两个的),这里有一个简单的例子,指出了如何允许一个特定的主机连接到你的SSH服务:~#iptables-AINPUT-ptcp-mstate–stateNEW–source193.180.177.13–dport22-jACCEPT并确保没有其他的主机可以访问SSH服务:~#iptables-AINPUT-ptcp–dport22-jDROP保存你的新规则,你的任务就完成了,规则是立即生效的8、SSH时间锁定技巧你可以使用不同的iptables参数来限制到SSH服务的连接,让其在一个特定的时间范围内可以连接,其他时间不能连接。你可以在下面的任何例子中使用/second、/minute、/hour或/day开关。第一个例子,如果一个用户输入了错误的密码,锁定一分钟内不允许在访问SSH服务,这样每个用户在一分钟内只能尝试一次登陆:~#iptables-AINPUT-ptcp-mstate–syn–stateNEW–dport22-mlimit–limit1/minute–limit-burst1-jACCEPT~#iptables-AINPUT-ptcp-mstate–syn–stateNEW–dport22-jDROP第二个例子,设置iptables只允许主机193.180.177.13连接到SSH服务,在尝试三次失败登陆后,iptables允许该主机每分钟尝试一次登陆:~#iptables-AINPUT-ptcp-s193.180.177.13-mstate–syn–stateNEW–dport22-mlimit–limit1/minute–limit-burst1-jACCEPT~#iptables-AINPUT-ptcp-s193.180.177.13-mstate–syn–stateNEW–dport22-jDROP9、结论这些技巧都不是很难掌握,但是它们对于保护你的SSH服务却是很强劲的手段,花一点代价换来的是睡一个好觉。

⑻ linux 当修改/etc/ssh/sshd_config时,提示:更改"sshd_config"的权限:不允许更改;

linux 当修改/etc/ssh/sshd_config时,提示:更改"sshd_config"的权限:不允许更改,是设置错误造成的,解决方法如下:

1、首先版远程进去权linux。

⑼ 如何在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 -ql openssh查看该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 -p 20022 [email protected] )和sftp服务(sftp -o Port=20022 [email protected] )。

4、关闭22号端口下的sftp服务编辑/usr/sbin/sshd的配置文件/etc/ssh/sshd_config文件,将Subsystem参数注释掉,然后重启sshd同时也可以设置可访问22号端口的用户白名单:编辑/etc/ssh/sshd_config文件,设置AllowGroups参数(假设设置为AllowGroups sshonly),限制仅AllowGroups组内的用户可通过22号端口ssh登录系统(对于需要ssh登录系统的用户可通过usermod -A sshonly <username>将其加入到AllowGroups组内)

5、“关闭20022号端口下的ssh服务”sftp作为一个子服务,它的开启依赖于ssh服务,因此不能从本质上关闭ssh服务而只开启sftp服务。可以用以下方式来规避:/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem参数配置(推荐使用Subsystem sftp internal-sftp -l INFO -f AUTH)/etc/ssh/sftpd_config中包含AllowGroups参数(假设为AllowGroups sftponly),限制仅AllowGroups组内的用户可以访问20022端口将AllowGroups组内的用户的shell改为/bin/false(usermod -s /bin/false <username>),使AllowGroups组内的用户仅能sftp登录系统(如果一个用户即需要ssh,又需要sftp,则不能将其shell改为/bin/false)

6、用户白名单配置配置之后,需将系统内需要ssh访问系统的用户加入到sshonly组内,需将系统内需要sftp访问系统的用户加入到sftponly组,同时需要ssh和sftp的用户则sshonly和sftponly组都要加入。

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

service sshd restartservice sftpd restart

⑽ linux当中ssh配置文件是哪个

客户端的配置文件是/etc/ssh/ssh_config服务端的配置文件是/etc/ssh/sshd_config


赞 (0)