随着互联网和计算机的不断发展,网络安全已经成为风险投资、大型企业和全球组织的首要问题之一。SSH作为远程管理和传输数据的工具,可以在安全的环境下进行远程访问和控制,保障了网络的安全性。但是,许多Linux新手在安装SSH的时候往往会遇到各种问题。这篇文章将为大家详细介绍Linux新手如何轻松地安装SSH服务。
成都创新互联是专业的江津网站建设公司,江津接单;提供成都网站建设、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行江津网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
1. 确认是否安装了SSH服务
在安装SSH服务前,需要确认是否已经安装了SSH服务,如果已经安装了SSH服务,可以跳过本节。如果没有安装SSH服务,可以通过以下命令来确认:
“`
dpkg -l |grep ssh
“`
如果系统输出了如下信息,则表示SSH服务未安装:
“`
No package ‘ssh’ found
“`
2. 下载和安装SSH服务
在确认了没有安装SSH服务后,就需要下载和安装SSH服务了。在Linux系统中,有许多SSH服务供应商,如OpenSSH和Dropbear等。本文以OpenSSH为例来介绍SSH服务的安装方法。
需要更新软件仓库:
“`
sudo apt-get update
“`
然后需要安装OpenSSH:
“`
sudo apt-get install openssh-server
“`
安装完成后,需要启动SSH服务:
“`
sudo systemctl enable ssh
“`
“`
sudo systemctl start ssh
“`
如果安装成功,可以通过以下命令检查是否已安装SSH服务:
“`
ssh localhost
“`
3. 配置SSH服务
SSH服务安装完成后,还需要进行一些配置,以确保SSH服务正常工作,并且安全可靠。
3.1 更改SSH默认端口
为了提高SSH服务的安全性,之一步就是更改SSH默认端口。SSH默认端口是22,这是黑客攻击的主要目标之一。因此,更改SSH默认端口可以提高安全性。可以通过以下步骤来更改SSH默认端口:
– 编辑SSH配置文件/etc/ssh/sshd_config
“`
sudo nano /etc/ssh/sshd_config
“`
– 找到以下内容并修改
“`
#Port 22
“`
改为
“`
Port XXXX
“`
其中,XXXX是一个大于1024的任意数字,一般建议使用5位数或更长的数字来避免被猜到端口号。
– 保存并关闭文件。
– 重新启动SSH服务以使更改生效。
“`
sudo systemctl restart ssh
“`
3.2 停用root用户SSH登录
第二步是停用root用户SSH登录。因为root用户名和密码已被黑客攻击过许多次,因此许多Linux管理员建议禁止root用户SSH登录,以提高安全性。
可以通过以下步骤停用root用户SSH登录:
– 编辑SSH配置文件/etc/ssh/sshd_config
“`
sudo nano /etc/ssh/sshd_config
“`
– 找到以下内容并修改
“`
#PermitRootLogin yes
“`
改为
“`
PermitRootLogin no
“`
– 保存并关闭文件。
– 重新启动SSH服务以使更改生效。
“`
sudo systemctl restart ssh
“`
4. 使用SSH连接到远程主机
SSH服务安装成功并且已经进行了必要的配置之后,就可以使用SSH来连接到远程主机。可以通过以下命令来连接到远程主机:
“`
ssh username@hostname -p port
“`
其中,username是远程主机上的用户名,hostname是远程主机的IP地址或主机名,port是SSH服务占用的端口号。
在连接到远程主机后,可以输入用户名和密码进行登录。如果一切正常,就可以在远程主机上执行命令,或者在本地机器上管理远程主机。
安装SSH服务是Linux管理的必备技能之一。本文详细介绍了如何在Linux系统中安装和配置SSH服务,让Linux新手也能轻松搞定SSH服务的安装。为了提高安全性,文章还介绍了如何更改SSH默认端口和禁止root用户SSH登录。在日常使用SSH服务时,还需要保持更新软件和设置强密码等措施,以确保网络安全。
成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-86922220之一步:在Linux上安装和配置OTPW
在Debian、Ubuntu或Linux Mint上:
用apt-get安装OTPW程序包。
$ sudo apt-get install libpam-otpw otpw-bin
使用文本编薯竖历辑工具,打开SSH的PAM配置文件(/etc/pam.d/sshd),注释掉下面这行代码(以禁用密码验证)。
#@include common-auth
然后添加下面两行代码(以启用一次性密码验证):
auth required pam_otpw.so
session optional pam_otpw.so
在Fedora或CentOS/RHEL上:
在基于红帽的系统上,没有作为预制程序包的OTPW。于是,我们通过从源代码来构建的方法,安装OTPW。
首先,安装基本组件:
$ sudo yum git gcc pam-devel
$ git clone
$ cd otpw
使用文本编辑工具打开Makefile,编辑以“PAMLIB=”开头的这一行,如下所示。
在64位系统上:
PAMLIB=/usr/lib64/security
在32位系统上:
PAMLIB=/usr/lib/security
编译后安装。请注意:安装环节会自动重启SSH服务器。所以如果你使用SSH连接,就要准备好断开。
$ make
$ sudo make install
现在你需要更新SELinux策略,因为/usr/in/sshd试图写入到用户的主目录,而默认的SELinux策略不允许这个操作。下面这些命令可以起到更新策略的作用。如果你不使用SELinux,跳过这一步好了。
$ sudo grep sshd /var/log/audit/audit.log | audit2allow -M mypol
$ sudo semodule -i mypol.pp
下一步,用文本编辑工具打数搜开SSH的PAM配置文件(/etc/pam.d/sshd),注释掉下面这行代码(以禁用密码验证)。
#auth substack password-auth
然后添加下面两行代码(以启用一次性密码验证):
auth required pam_otpw.so
session optional pam_otpw.so
第二步:针对一次性密码配置SSH服务器
下一步是配置SSH服务器,以接受一次性密码。
用文本编辑工具打开/etc/ssh/sshd_config,设置下列三个参数。确保你没有不止一次地添加这几行,因为那会引起SSH服务器失效。
UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes
UsePAM yes
你还需要禁用默认的密码验证。可以视情况,禁用公密验证,那样万一你没有一次性密码,就可以恢复到基于密钥的验证。
PubkeyAuthentication yes
PasswordAuthentication no
现在,重启SSH服务器。
在Debian、Ubuntu或Linux Mint上:
$ sudo service ssh restart
在Fedora或CentOS/RHEL 7上:
$ sudo systemctl restart sshd
第三步:用OTPW生成一次性密码
如前所述,你需要事先创建一次性密码,并将它们存储在远程SSH服务器主机上。为此,以你登录时所用的用户身份运行otpw-gen工具。
$ cd ~
$ otpw-gen > temporary_password.txt
它会要求你设置一个前缀密码。你以后登录时,就需要输入这个前缀密码以及一次性密码。实际上前缀密码是另一层保护机制。即使密码表落到了不法分子手里,前缀密码也会迫使对方采用蛮力攻击。
一旦纤州前缀密码设置完毕,命令会生成280个一次性密码,并将它们存储在输出文本文件(比如temporary_password.txt)中。每个密码(默认情况下长度是8个字符)的前面是三位数的索引号。你可以将文件打印在纸张上,随身携带。
你还会看到~/.otpw文件已创建,这些密码的密码散列就存储在其中。每一行的头三位表明了将用于SSH登录的密码的索引号。
$ more ~/.otpw
OTPW1
191ai+:ENwmMqwn
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64j
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z
测试用于SSH登录的一次性密码
现在,不妨像平常那样登录到SSH服务器:
$ ssh user@remote_host
如果OTPW成功设置,你会看到略有不同的密码提示符:
Password 191:
现在打开密码表,寻找密码表中的索引号“191”。
023 kBvp tq/G 079 jKEw /HRM 135 oW/c /UeB 191 fOO+ PeiD 247 vAnZ EgUt
据上面密码表显示,编号“191”的一次性密码是“fOO+PeiD”。你需要在前面加上前缀密码。比如说,如果你的前缀密码是“000”,那么需要输入的实际的一次性密码是“000fOO+PeiD”。
一旦你成功登录,所使用的密码会自动作废。如果你查看~/.otpw,就会注意到之一行被换成了“-”,这意味着密码“191”已经无效。
OTPW1
–
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64j
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z
之一步:在Linux上安装和配置OTPW
在Debian、Ubuntu或Linux Mint上:
用apt-get安装OTPW程序包。
$ sudo apt-get install libpam-otpw otpw-bin
使用文本编辑工具,打开SSH的PAM配置文件(/etc/pam.d/sshd),注释掉下面这行代码(以禁用密码验证)。
#@include common-auth
然后添加下面两行代码(以启用一次性密码验证):
auth required pam_otpw.so
session optional pam_otpw.so
如何在Linux上用一次性密码确保SSH登录安全?
碧岁在Fedora或CentOS/RHEL上:
在基于红帽的系统上,没有作为预制程序包的OTPW。于是,我们通过从源代码来构建的方法,安装OTPW。
首先,安装基本组件:
$ sudo yum git gcc pam-devel
$ git clone
$ cd otpw
使用文本编辑工具打开Makefile,编辑以“PAMLIB=”开头的这一行,如下所示。
在64位系统上:
PAMLIB=/usr/lib64/security
在32位系统上:
PAMLIB=/usr/lib/security
编译后安装。请注意:安装环节会自动重启SSH服务器。所以如果你使用SSH连接,就要准备好断开。
$ make
$ sudo make install
现在你需要更新SELinux策略,因为/usr/in/sshd试图写入到用户的主目录,而默认的SELinux策略不允许这个操作。下面这些命令可以起到更新策略的作用。如果你不使用SELinux,跳过这一步好了。
$ sudo grep sshd /var/log/audit/audit.log | audit2allow -M mypol
$ sudo semodule -i mypol.pp
下一步,用文本编辑工具打开SSH的PAM配置文件(/etc/pam.d/sshd),注释掉下面这行代码(以禁用密码验证)。
#auth substack password-auth
然后添加下哗埋面两行代码(以启用一次性密码验证):
auth required pam_otpw.so
session optional pam_otpw.so
第二步:针对一次性密码配置SSH服务器
下一步是配置SSH服务器,以接受一次性密码。
用文本编辑工具打开/etc/ssh/sshd_config,设置下列三个参数。确保你没有不止一次地添加这几行,因为那会引起SSH服务器失效。
UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes
UsePAM yes
你还需要禁用默认的密码验证。可以视情况,禁用公密验证,那样万一你没有一次性密码,就可以恢复到基于密钥的验证。
PubkeyAuthentication yes
PasswordAuthentication no
现在,重启SSH服务器。
在Debian、Ubuntu或Linux Mint上:
$ sudo service ssh restart
在Fedora或CentOS/RHEL 7上:
$ sudo systemctl restart sshd
第三步:用OTPW生成一次性密码
如前所述,你需要事先创建一次性密码,并将它们存储在远程SSH服务器主机上。为此,以你登录时所用的用户身份运行otpw-gen工具。
$ cd ~
$ otpw-gen > temporary_password.txt
如何在Linux上用一次性密码确保SSH登录安全?
它会要求你设置一个前缀密码。你以后登录时悔芦睁,就需要输入这个前缀密码以及一次性密码。实际上前缀密码是另一层保护机制。即使密码表落到了不法分子手里,前缀密码也会迫使对方采用蛮力攻击。
一旦前缀密码设置完毕,命令会生成280个一次性密码,并将它们存储在输出文本文件(比如temporary_password.txt)中。每个密码(默认情况下长度是8个字符)的前面是三位数的索引号。你可以将文件打印在纸张上,随身携带。
如何在Linux上用一次性密码确保SSH登录安全?
你还会看到~/.otpw文件已创建,这些密码的密码散列就存储在其中。每一行的头三位表明了将用于SSH登录的密码的索引号。
$ more ~/.otpw
OTPW1
191ai+:ENwmMqwn
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64j
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z
测试用于SSH登录的一次性密码
现在,不妨像平常那样登录到SSH服务器:
$ ssh user@remote_host
如果OTPW成功设置,你会看到略有不同的密码提示符:
Password 191:
现在打开密码表,寻找密码表中的索引号“191”。
023 kBvp tq/G 079 jKEw /HRM 135 oW/c /UeB 191 fOO+ PeiD 247 vAnZ EgUt
据上面密码表显示,编号“191”的一次性密码是“fOO+PeiD”。你需要在前面加上前缀密码。比如说,如果你的前缀密码是“000”,那么需要输入的实际的一次性密码是“000fOO+PeiD”。
一旦你成功登录,所使用的密码会自动作废。如果你查看~/.otpw,就会注意到之一行被换成了“-”,这意味着密码“191”已经无效。
OTPW1
—
218tYRZc%PIY27a
241ve8ns%NsHFmf
055W4/YCauQJkr:
102ZnJ4VWLFrk5N
2273Xww55hteJ8Y
1509d4b5=A64j
168FWBXY%ztm9j%
000rWUSdBYr%8UE
037NvyryzcI+YRX
122rEwA3GXvOk=z
建议参考开源的OTPW项目
这个是7.1的 7.2一样
Openssh7.1p1升级方案
OpenSSH_7.1p1、Openssl1.01p、zlib1.28
之一步 准备安装包
1.1、 确定操作系统
uname -a
l_release -a(suse)
cat /etc/issue(redhat)
1.2、 将所需安装包上传到服务器
zlib-1.2.8.tar.gz
openssl-1.0.1p.tar.gz
openssh-7.1p1.tar.gz
相关下载:
www.openssl.org
、
www.openssh.org
、
www.zlib.net
、缓乱
//先把所有安装文件上传服务器,再卸载ssh,要不文件上传非常麻烦,在系统镜像中找到gcc安装包一并上传,大部分make失败都是gcc未安装或者安装不扰丛档全造成。
第二步 准备好其他远程方式
2.1、此项可选择telnet或者vnc来进行郑亏远程操作
安装telnet服务,telnet安装rpm包对应操作系统ISO文件里面提取,建议不要跨操作系统版本安装,减少未知问题。
vi /etc/xinetd.d/telnet
disable = yes改成 no。
service xinetd restart
vi /etc/securetty加入
pts/0
pts/1
pts/2
pts/3
vi /etc/pam.d/login文件注释掉:
#auth
#auth_err=die default=bad> pam_securetty.so
//以上步骤保证root用户可以telnet,保证后续远程配置正常进行。
第三步 程序升级
3.1、停止SSHD服务
# /in/service sshd stop
3.2、备份启动脚本
# cp /etc/init.d/sshd /root/
3.3、卸载系统里原有Openssh
# rpm -qa openssh //查询系统原安装的openssh包,全部卸载。
# rpm -e openssh –nodeps
# rpm -e openssh-server –nodeps
# rpm -e openssh-clients –nodeps
# rpm -e openssh-askpass
3.4、解压安装zlib包:
# tar -zxvf zlib-1.2.8.tar.gz//首先安装zlib库,否则会报zlib.c错误无法进行
# cd zlib-1.2.8
# ./configure
# make&&make install
3.5、解压安装openssl包:
# tar -zxvf openssl-1.0.1p.tar.gz
# cd openssl-1.0.1p
# ./config shared zlib
# make
# make test
# make install
# mv /usr/bin/openssl /usr/bin/openssl.OFF
# mv /usr/include/openssl /usr/include/openssl.OFF
//该步骤可能提示无文件,忽略即可
# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
# ln -s /usr/local/ssl/include/openssl /usr/include/openssl
//移走原先系统自带的openssl,将自己编译产生的新文件进行链接。
3.6、配置库文件搜索路径
# echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
# /in/ldconfig -v
# openssl version -a
OpenSSL 1.0.1m 19 Mar 2023
built on: Sat Mar 21 04:11:
platform: linux-x86_64
options: bn(64,64) rc4(8x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,–noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_A_MONT -DOPENSSL_BN_A_MONT5 -DOPENSSL_BN_A_GF2m -DSHA1_A -DSHA256_A -DSHA512_A -DMD5_A -DAES_A -DVPAES_A -DBSAES_A -DWHIRLPOOL_A -DGHASH_A
OPENSSLDIR: “/usr/local/ssl
3.7、解压安装openssh包:
先将将/etc/ssh的文件夹备份:
# mv /etc/ssh /etc/ssh_bak
# tar -zxvf openssh-7.1p1.tar.gz
# cd openssh-7.1p1
# ./configure –prefix=/usr –sysconfdir=/etc/ssh –with-zlib –with-ssl-dir=/usr/local/ssl –with-md5-passwords –mandir=/usr/share/man –with-pam
# make
# make install
ssh –V
OpenSSH_7.1p1, OpenSSL 1.0.1p 9 Jul 2023
3.8、启动调试ssh
# /usr/in/sshd -d
debug1: sshd version OpenSSH_7.1, OpenSSL 1.0.1m 19 Mar 2023
debug1: private host key #0: ssh-rsa SHA256:EqDJvZiq8JgG+nG/xZ6yrd3B+OoulgE5GhzSZcJHg
debug1: private host key #1: ssh-dss SHA256:AmqP8tvvqy3t1dSy1P4ETqh8Poma40PmzDpTtipVIqQ
debug1: private host key #2: ecdsa-sha2-nistp256 SHA256:sebvQl7OXvlFBy9zuUYPwWfqJm47qYBi/IIcEA8Jk
debug1: private host key #3: ssh-ed25519 SHA256:niy1XbgnrydgeFXfMqVjkfRbUlZ4YeFsWof2cWoCBWc
debug1: rexec_argv=’/usr/in/sshd’
debug1: rexec_argv=’-d’
Set /proc/self/oom_score_adj from 0 to -1000
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Bind to port 22 on ::.
Bind to port 22 on :: failed: Address already in use.
Cannot bind any address.
3.9、启动服务
# cp -p contrib/redhat/sshd.init /etc/init.d/sshd(redhat使用)
# cp -p contrib/suse/rc.sshd /etc/init.d/sshd(suse使用)
//其他版本操作系统具体查看contrib对应目录和readme。
# chmod +x /etc/init.d/sshd
# chkconfig –add sshd
# cp sshd_config /etc/ssh/sshd_config (如提示覆盖,yes回车)
# cp sshd /usr/in/sshd (如提示覆盖,yes回车)
10、验证是否成功
service sshd start
ssh -V
OpenSSH_7.1p1, OpenSSL 1.0.1m 19 Mar 2023
此时可以尝试远程ssh进去服务器,如果能连,并查看验证日志信息等确认无误。
查看ssh服务状态:
//以下配置redhat略有不同,具体情况具体解决。
/etc/init.d/sshd status
Checking for service sshd unused
状态不可用,ssh连接正常。
pkill sshd
杀掉sshd服务
service sshd start
启动sshd服务
service sshd status
Checking for service sshd running
卸载telnet-server
rpm –e telnet-server
客户端连接telnet失败。
# vi /etc/ssh/sshd_config
如何在linux安装ssh的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何在linux安装ssh,Linux新手也能轻松搞定:快速安装SSH服务,如何在Linux上用一次性密码确保SSH登录安全,各位大神.怎样在Linux redhat上安装openssh7.2的信息别忘了在本站进行查找喔。
成都网站建设选创新互联(☎:028-86922220),专业从事成都网站制作设计,高端小程序APP定制开发,成都网络营销推广等一站式服务。
分享名称:Linux新手也能轻松搞定:快速安装SSH服务(如何在linux安装ssh)
文章分享:http://www.csdahua.cn/qtweb/news22/138472.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网