Linux新手也能轻松搞定:快速安装SSH服务 (如何在linux安装ssh)

随着互联网和计算机的不断发展,网络安全已经成为风险投资、大型企业和全球组织的首要问题之一。SSH作为远程管理和传输数据的工具,可以在安全的环境下进行远程访问和控制,保障了网络的安全性。但是,许多Linux新手在安装SSH的时候往往会遇到各种问题。这篇文章将为大家详细介绍Linux新手如何轻松地安装SSH服务。

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服务时,还需要保持更新软件和设置强密码等措施,以确保网络安全。

相关问题拓展阅读:

如何在Linux上用一次性密码确保SSH登录安全

之一步:在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项目

各位大神.怎样在Linux redhat上安装openssh7.2

这个是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的信息别忘了在本站进行查找喔。


数据运维技术 » Linux新手也能轻松搞定:快速安装SSH服务 (如何在linux安装ssh)