首頁 >運維 >linux運維 >linux是否自備ssh

linux是否自備ssh

WBOY
WBOY轉載
2023-05-31 13:06:131109瀏覽

linux自帶ssh。 linux系統會自備ssh軟體,預設就是OpenSSH相關軟體包,並將ssh服務加入為開機自啟動,可透過「ssh -V」指令來查看安裝的ssh版本資訊。要啟動sshd服務,只需執行命令“systemctl start sshd”,它使用預設連接埠22。

linux自帶ssh嗎

如果需要每次去機房才能進行伺服器維護,就會感到不方便。所以linux有一個功能可以遠端使用shell的方式發,就是ssh(Secure Shell 的縮寫)。也就是在伺服器上會啟動一個服務,專門接收遠端的存取數據,然後再把這些數據轉發給系統內核,完成這些操作,這樣研發的同事就不需要去機房就可以維護伺服器。

ssh需要伺服器開放對應的網路端口,預設是22端口,也可以修改為其他端口,例如9022等。

因為考慮伺服器對外保留端口,而且是管理類別的(透過shell,就可以控制伺服器了),因此ssh提供有各種安全限制方式,比較常見的是禁止root帳號登入、只允許可信任ip登錄,以及使用證書方式。即使陌生人已經獲得相關的帳號和權限,採取這樣的措施仍能防止他登入伺服器。

外部電腦使用ssh登入伺服器,需要有對應的客戶端軟體。如果是linux或mac,系統會自備ssh軟體(雖然是命令列方式的),預設就是OpenSSH,可以透過ssh -V 指令來檢視安裝的ssh版本資訊:

[root@xiaoluo xiaoluo]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

從上述資訊可以看到,我這台安裝在虛擬機器上的CentOS6.4預設安裝的SSH其協定是1.0的。

OpenSSH伺服器設定檔

服務名稱:sshd

#服務端主程式:/usr/sbin/sshd

服務端設定檔:/etc/ssh/sshd_config

openSSH是實作SSH協定的開源軟體項目,適用於各種UNIX、Linux作業系統。

centos 7 系統預設已安裝openssh相關軟體包,並將ssh服務新增為開機自啟動。

執行「systemctl start sshd」指令即可啟動sshd服務。預設連接埠使用的22連接埠。

ssh_confiog 和 sshd_config 都是ssh伺服器的設定檔

二者差異在於前者是針對客戶端的設定文件,後者是針對服務端的設定檔。

ssh服務端主要包含兩個服務功能,ssh遠端連線和sftp服務

SSHD服務可使用SSH協定進行遠端控製或在電腦之間傳輸檔案。與先前使用Telnet傳輸檔案相比,現在使用SSH更安全,因為Telnet傳輸的是明文,而SSH傳輸的是加密資料。

ssh遠端登入方式

ssh登入的方式有兩種。

第一次登入伺服器時,系統沒有保存遠端主機的訊息,為了確認主機身分會提示使用者是否繼續連接,輸入yes後登錄,這時系統將遠端伺服器資訊寫入使用者主目錄下的:$HOME/.ssh/known_hosts 檔案中,下次再登入時,因為儲存有該主機資訊就不會再提示了。

1、方法一

格式: ssh [ 遠端主機使用者名稱] @ [遠端伺服器主機名稱或IP位址] -p port
當Linux主機上遠端連接另一台Linux主機時,如目前所登入的使用者是root的話,當連接另一台主機時也是用root使用者登入時,可以直接使用ssh IP 登入。連接埠預設即可,如果不是預設的情況下,需要使用-p 指定連接埠。

遠端登入其它主機

ssh root@192.168.100.10    第一次互動輸入yes 第二次互動輸入root密碼登入成功

linux是否自備ssh

#登入之後再登出登錄,在本機家目錄會產生一個.sshd 的目錄,裡面有檔案記錄了登入的資訊。

linux是否自備ssh

2、使用網域名稱登入

#①修改本機對映關係

linux是否自備ssh

②進行登入

linux是否自備ssh

3、故障解決

在工作中,有時候需要SSH登陸到別的Linux主機上去,但有時SSH登入會被禁止,並彈出如下類似提示:

warning: Permanently added '192.168.100.10'(ECDSA) to the list of known hosts. Authentication failed.

這時直接刪除家目錄下面的.ssh 目錄下面的文件,即可解決。

4、sshd服務支援的兩種登入驗證方式

1)密碼驗證

对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时,防护能力比较弱。
18位密码复杂性(大写、小写、字符、数字),修改端口为高位端口,可以提高安全性。

2)秘钥对验证

要求提供相匹配的秘钥信息才能通过验证。通常先在客户端中创建一对秘钥文件(公钥、私钥),然后将公钥文件放到服务器中指定位置,远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,

大大增强了远侧还能够管理的安全性。该方式不易被假冒,且可以免交互登录,在shell中被广泛使用

当密码验证、秘钥验证都启用时,服务器将优先使用秘钥对验证。
对于安全性要求高的服务器,建立将密码验证方式禁用,只允许启用秘钥对验证方式。

配置文件中修改启用密码验证还是秘钥验证

配置文件:/etc/ssh/sshd_config

PasswordAuthentication yes                        #启用密码验证

PubkeyAuthentication yes                          #启用密钥对验证

AuthorizedKeysFile     .ssh/authorized_keys       #指定公钥库文件(ls -a可查看)

配置文件中其它的设置

LoginGraceTime 2m                #登录验证时间为2分钟(默认2分钟)
PermitRootLogin no               #禁止root用户登录
MaxAuthTries 6                   #最大重试次数为6次
PermitEmptyPasswords no          #禁止空密码登录
PrintLastLog yes                 #显示上次登入的信息!默认为 yes
AllowUsers                       #只允许或禁止某些用户登录

配置文件修改完之后,需要重启配置sshd服务

systemctl restart sshd #重启sshd服务

构建秘钥对验证的SSH

公钥和私钥的关系

在对称加密技术中,有两种秘钥,分为私钥和公钥,私钥是秘钥的创建人拥有,不可公布,公钥是创建者公布给他人的。
公钥用来给数据加密,用公钥加密的数据只能使用私钥解。
构建秘钥对验证SSH的原理

首先ssh通过加密算法在客户端产生秘钥对(公钥和私钥),公钥发送给服务端,自己保留私钥。
如果要想连接带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求联机的用户密钥进行安全验证。
SSH服务器收到请求之后,便在被连接的用户的家目录下寻找事先放上去的对应用户的公用秘钥
然后把它和连接的SSH客户端发送过来的公用秘钥进行比较,如果两个秘钥一致,SSH服务器就用公钥加密“质询”并把它发送给SSH客户端。

  • 简单理解

    生成密钥可以在客户端和服务端两边生成,但是我们需要将使用客户端登录到服务端,那么,客户端就一直需要的是私钥,服务端要存在公钥,所以不关密钥对在客户端还是服务端生成,客户端拿到的都会是私钥,服务端拿到的都是公钥。

  • 通俗理解

    公钥(public key)相当于一扇门,私钥(pribate key)相当于是开门的钥匙,当一台机器A需要登录到机器B的时候,就得拿着钥匙去开门,但是前提的是机器B必须要有门,所以需要给机器B装上门,那就是把机器A的公钥给到机器B。然后机器A使用私钥就可以打开机器B的公钥门。

1、scp远程复制

scp复制 :是secure copy (安全复制)的简写,用在Linux下进行远程拷贝的命令,而且scp传输时加密的。
应用场景
在系统误删环境配置文件且没有备份的时候,可以远程从其它主机上拷贝过来。

本地文件复制到服务器
scp 1.txt root@192.168.100.10:/opt

复制服务器的目录到本地
scp root@192.168.100.10:/home/sky/ ./

本地目录复制到服务器
scp -r / root@192.168.100.10:/home

linux是否自備ssh

2、sftp 安全性传输

sftp 是secure file transfer protocol(安全文件传送协议) 的缩写,可以为传输文件提供一种安全的网络加密方法。

sftp与ftp有着几乎一样的语法和功能,sftp 为ssh的其中一部分,sftp本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作。所以使用sftp是非常安全的,但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低的多。对网络安全要求更高时,可以使用SFTP代替FTP。

  • 从服务端下载文件到本地主机

linux是否自備ssh

  • 从本地主机上传文件到服务端

linux是否自備ssh

3、配置密钥对实验

通过ssh-keygen工具为当前用户创建密钥对文件,可用的加密算法有“RAS”、“ECDSA”、“DSA”,通过-t 选项调用相应的算法。

3.1 在服务端创建密钥对

linux是否自備ssh

查看密钥对的位置

linux是否自備ssh

3.2、修改密钥对的配置文件

修改ssd_config配置文件没关闭,关闭密码验证,开启密钥验证

 vim /etc/ssh/sshd_config

linux是否自備ssh

加载服务

linux是否自備ssh

3.3、发送私钥到客户端

linux是否自備ssh

linux是否自備ssh

3.4用xshell登录

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

3.5、客户端创建秘钥

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

linux是否自備ssh

vim /etc/ssh/sshd_config  修改公钥位置文件

linux是否自備ssh

重启服务

linux是否自備ssh

linux是否自備ssh

以上是linux是否自備ssh的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除