如何使用Linux上的SSH和OpenSSL? (linux ssh openssl)

如何使用Linux上的SSH和OpenSSL?

越来越多的人开始使用Linux系统进行各种工作,因为它被认为是一个强大的操作系统,拥有很多好处。SSH和OpenSSL是两个非常重要的工具,可以帮助您在Linux上进行安全通信。本文将对这两个工具进行介绍,以及如何在Linux系统上使用它们。

什么是SSH?

SSH代表安全外壳协议。它是一种安全的通信协议,专门用于远程控制计算机。使用SSH,您可以在安全的方式下发送和接收命令和文件,以及访问网络服务。SSH使用公钥和私钥来验证和加密通信,这使得SSH成为一种可靠的和安全的通信方式。

如何在Linux上安装SSH?

如果您正在使用Debian或Ubuntu Linux,可以使用以下命令来安装SSH:

$ sudo apt-get install ssh

如果您正在使用RHEL或CentOS Linux,则需要使用以下命令:

$ sudo yum install ssh

一旦您安装了SSH,您可以通过以下方法使用它:

1.发送文件:

要将文件从本地计算机发送到远程计算机,可以使用以下命令:

$ ssh username@remotehost ‘cat > path/to/destination/file’

在此命令中,”username”是远程计算机上的用户名,“remotehost”是远程计算机的主机名或IP地址,”path/to/destination/file”是要保存文件的路径,“path/to/source/file”是本地计算机上要发送的文件的路径。

2.接收文件:

要从远程计算机接收文件并将其保存到本地计算机上,可以使用以下命令:

$ scp username@remotehost:/path/to/source/file /path/to/destination/file

在这个命令中,“username”是远程计算机上的用户名,“remotehost”是远程计算机的主机名或IP地址,“/path/to/source/file”是要传输的文件的路径,“/path/to/destination/file”是本地计算机上要保存文件的路径。

3.使用SSH连接到远程计算机:

要连接到远程计算机并以交互方式进行通信,请使用以下命令:

$ ssh username@remotehost

在此命令中,“username”是远程计算机上的用户名,“remotehost”是远程计算机的主机名或IP地址。然后,您可以输入命令并在远程计算机上执行它们。

什么是OpenSSL?

OpenSSL是一个开源的加密和安全的套接字层工具包。它包含用于数字证书、私钥和加密/解密的函数。OpenSSL是一种流行的加密标准,它被广泛地使用在安全通信和数据传输上,包括HTTPS的加密链接。

如何在Linux上安装OpenSSL?

如果您正在使用Debian或Ubuntu Linux,可以使用以下命令来安装OpenSSL:

$ sudo apt-get install openssl

如果您正在使用RHEL或CentOS Linux,则需要使用以下命令:

$ sudo yum install openssl

一旦您安装了OpenSSL,您可以使用以下方法使用它:

1.创建私钥和证书:

要创建自己的私钥和证书,请使用以下命令:

$ openssl genrsa -out private.key 2023

$ openssl req -new -key private.key -out cert.csr

$ openssl x509 -req -days 365 -in cert.csr -signkey private.key -out certificate.crt

在这个命令中,“private.key”是私钥的名称,“cert.csr”是证书请求的名称,“certificate.crt”是证书的名称。这个命令将生成私钥、证书和证书请求文件。

2.加密和解密文件:

要加密和解密文件,可以使用以下命令:

$ openssl enc -aes-256-cbc -in file -out file.enc

$ openssl enc -d -aes-256-cbc -in file.enc -out file

在此命令中,“file”是要加密或解密的文件名。“-aes-256-cbc”是加密的算法。由于对称密钥加密算法的本质,将使用相同的密码加密和解密文件。

结论

SSH和OpenSSL是两个非常有用的工具,它们可以帮助您在Linux上进行安全通信。本文介绍了如何在Linux系统上安装和使用SSH和OpenSSL,并说明了它们的一些常见用途。如果您正在使用Linux系统进行工作,那么了解这些工具及其用途,将使您更加安全和高效地完成工作。

相关问题拓展阅读:

各位大神.怎样在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无法连接。连接上的没问题。

看看你/etc/security/limits.conf里是否有用户数的限制。比如下面的:

* soft nproc 100

* hard nproc 150

到返谨了陆首100个用户,就会漏悉基报下面的错:

sshd: Accepted password for user from 192.168.1.1 portssh2

sshd: fatal: setresuid 500: Resource temporarily unavailable

1、搜一下:ssh Read from remote host Connection reset by peer

2、SSH有一个 ClientAliveInterval 参数,在你的 /etc/ssh/sshd_config 配置文件中设置一个合适的值,比如:ClientAliveInterval 115 就可以让 OpenSSH 服务器端在空闲的时候定时向客户端请求一个数据包。

ISP或网关在使用NAT时,有时NAT设备会检测建立的session,如果无数据传输,就会拆掉该session,体现在ssh登录时,就会出现没有操作时无缘无故的断线。在陪卖NAT转换时,默认无传输session存活周期为120秒,把ClientAliveInterval值设成了115秒,这样就芦锋逗解决了SSH容易掉的基孝问题!

关于linux ssh openssl的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何使用Linux上的SSH和OpenSSL? (linux ssh openssl)