最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux ssh-keygen系列命令與ssh命令的使用詳解

 更新時(shí)間:2025年11月11日 11:30:02   作者:fengyehongWorld  
ssh-keygen用于生成SSH密鑰對(duì),用于無(wú)密碼登錄遠(yuǎn)程服務(wù)器,ssh-copy-id用于將公鑰上傳到遠(yuǎn)程服務(wù)器,查看服務(wù)器公鑰指紋可以使用ssh-keyscan或在服務(wù)器端查看,ssh-F可以查看指定服務(wù)器的完整公鑰,-R可以刪除保存的公鑰,ssh命令可以查看連接詳情、指定端口號(hào)、執(zhí)行命令等

一. ssh-keygen相關(guān)命令

1.1 簡(jiǎn)介

ssh-keygen 是一個(gè)用于 創(chuàng)建 SSH 密鑰對(duì)(公鑰和私鑰) 的命令行工具,主要用于 SSH 認(rèn)證。這些密鑰可以用來(lái):

  • 無(wú)密碼地登錄遠(yuǎn)程服務(wù)器(通過(guò)公鑰認(rèn)證)
  • 對(duì)數(shù)據(jù)進(jìn)行加密與簽名(如 Git 簽名等)
  • 管理 known_hosts 文件中主機(jī)的指紋

 SSH 密鑰對(duì)的原理簡(jiǎn)述

  • 在本地生成密鑰對(duì)(私鑰保存在本地,公鑰可以公開(kāi))。
  • 把公鑰上傳到服務(wù)器的 ~/.ssh/authorized_keys。
  • 登錄服務(wù)器時(shí),SSH 客戶端用私鑰進(jìn)行身份認(rèn)證,服務(wù)器用你上傳的公鑰進(jìn)行驗(yàn)證。

這樣就能實(shí)現(xiàn):免密碼、安全登錄遠(yuǎn)程主機(jī)。

1.2 生成密鑰

  • -t ed25519:指定加密算法
  • -C "fengyehong123@example.com"
    • 公鑰中會(huì)默認(rèn)使用當(dāng)前系統(tǒng)的用戶名和主機(jī)名作為注釋
    • 指定給密鑰添加注釋(通常是郵箱或用戶名,方便識(shí)別密鑰用途)
  • -f ~/.ssh/key:指定密鑰輸出的位置,會(huì)生成以下2個(gè)文件
    • ?? 私鑰:~/.ssh/key
    • ?? 公鑰:~/.ssh/key.pub
ssh-keygen -t ed25519 -C "fengyehong123@example.com" -f ~/.ssh/key

1.3 ssh-copy-id 上傳公鑰到指定的服務(wù)器

  • 命令執(zhí)行之后,會(huì)把公鑰的內(nèi)容給追加到對(duì)方服務(wù)器的~/.ssh/authorized_keys文件中
ssh-copy-id -i ~/.ssh/key.pub apluser@172.22.118.28

1.4 服務(wù)器的公鑰指紋查看

1.4.1 ssh-keyscan 在客戶端查看對(duì)方服務(wù)器的公鑰指紋

  • 注意:這種方式不能 100% 保證安全(容易被中間人攻擊),除非所在的網(wǎng)絡(luò)環(huán)境受到信任
$ ssh-keyscan 172.22.118.28 2>/dev/null | ssh-keygen -lf -
256 SHA256:R6Ra3HpmUF8+MgTj2Rd7guogV2STz1mjLhfIGA7fJB8 172.22.118.28 (ED25519)
3072 SHA256:6zpOXvNpQQZUMevJe+/bSGcySCnqBGZE8p2hoMjPNh0 172.22.118.28 (RSA)
256 SHA256:ZMFgHvPdsZSIuGyEkv1WFgJT3eGjSC4AI/HwTMH4s8o 172.22.118.28 (ECDSA)
  • 指定查看某種加密方式所對(duì)應(yīng)的密鑰
$ ssh-keyscan -t ed25519 172.22.118.28 2>/dev/null | ssh-keygen -lf -
256 SHA256:R6Ra3HpmUF8+MgTj2Rd7guogV2STz1mjLhfIGA7fJB8 172.22.118.28 (ED25519)

1.4.2 在服務(wù)器端查看公鑰指紋

  • 服務(wù)器的公鑰都保存在/etc/ssh/目錄下
apluser@FengYeHong-HP:~$ ls -l /etc/ssh/*.pub
-rw-r--r-- 1 root root 180 May 25 21:45 /etc/ssh/ssh_host_ecdsa_key.pub
-rw-r--r-- 1 root root 100 May 25 21:45 /etc/ssh/ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 572 May 25 21:45 /etc/ssh/ssh_host_rsa_key.pub
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
256 SHA256:ZMFgHvPdsZSIuGyEkv1WFgJT3eGjSC4AI/HwTMH4s8o root@FengYeHong-HP (ECDSA)
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:R6Ra3HpmUF8+MgTj2Rd7guogV2STz1mjLhfIGA7fJB8 root@FengYeHong-HP (ED25519)
apluser@FengYeHong-HP:~$
apluser@FengYeHong-HP:~$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
3072 SHA256:6zpOXvNpQQZUMevJe+/bSGcySCnqBGZE8p2hoMjPNh0 root@FengYeHong-HP (RSA)

1.5-F查看指定服務(wù)器對(duì)應(yīng)的完整公鑰

命令顯示內(nèi)容含義
ssh-keygen -F <IP>顯示的是完整公鑰(Base64)known_hosts 中保存的原始公鑰
ssh-keygen -lf ~/.ssh/known_hosts顯示的是指紋(SHA256 hash)便于人工比對(duì)、防止被偽造

當(dāng)連接服務(wù)器成功之后,服務(wù)器的公鑰會(huì)被保存到

  • Linux環(huán)境:~/.ssh/known_hosts
  • Windows環(huán)境:$HOME/.ssh/known_hosts

可以通過(guò) -F 配置項(xiàng)查詢指定服務(wù)器對(duì)應(yīng)的公鑰

$ ssh-keygen -F 172.22.118.28 | grep -v '#'
172.22.118.28 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICw5prT13UbYsJw4qzWDpq34WjbVpuT5xqNvb5hXMH8w
172.22.118.28 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCl/8jZjH5edrPIgtmGBg8NjfBk2b1aRqW66LZeD0vdiMEB8TYagccKYAg4h9RFyq2s/zjUh5EIK7gaYNapbLv/3ZtbwJf0UWieskK2x+dVbBySfKQjSobjCGrkf1ieLgv5ZIYmPxyT2lcTPOJLT3qQTVGr4Boygx2Ai3pOOqjs8jzVQaAPVnEGaHpqU4XyQxY2mvehe3lvvXd799vF3c5E+hKGJA2mGViYFSeZKhRXeoy/oTvEBYsAlYsT8efgyDE5F5ZqKXekxTy9bZbwutD4PDC6pt89h52oVoZJsuC28RsNmds/f0s8wJrsvantStZa9J1MiOTIgA4DsvvbwuSwMJLqis5pAFMV2IZ+efdrQPWeA2WKcBacCIjjfB4p5O3/HoXJFJfbWNJTnTbsCnyzlOZ42GZTB6JB192/LlPxsBDmeUrSZlPUjhGTxA8BEkzgL6a4HCzw0jKNGkR1L/UT4D/qcNWWZHhBvZaCWinYLUjXQpMNRKA51WM+GXChw+8=
172.22.118.28 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJu6r6tihFTYzSsXHk+fFp3Xnq7jNRJCrJbhdC8gpSJpoujxfv1JMVoYUiZNSI2ucR8oJFIgTul50ez31kXwX9c=
  • 注意:-F 查看的是服務(wù)器的完整公鑰(Base64編碼后),并不是公鑰的指紋
  • 可以通過(guò)下面的命令將Base64編碼后完整公鑰轉(zhuǎn)換為公鑰指紋,方便比對(duì)
# 服務(wù)器端查看公鑰指紋
apluser@FengYeHong-HP:~$ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:R6Ra3HpmUF8+MgTj2Rd7guogV2STz1mjLhfIGA7fJB8 root@FengYeHong-HP (ED25519)

# 在客戶端將Base64編碼后完整公鑰轉(zhuǎn)換為公鑰指紋
$ echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICw5prT13UbYsJw4qzWDpq34WjbVpuT5xqNvb5hXMH8w" | ssh-keygen -lf -
256 SHA256:R6Ra3HpmUF8+MgTj2Rd7guogV2STz1mjLhfIGA7fJB8 no comment (ED25519)
  • 可以通過(guò)下面的命令批量查看服務(wù)器保存到客戶端的全部公鑰的指紋
$ ssh-keygen -F 172.22.118.28 | grep -v '#' | awk '{print $2 " " $3}' | ssh-keygen -lf -
256 SHA256:R6Ra3HpmUF8+MgTj2Rd7guogV2STz1mjLhfIGA7fJB8 no comment (ED25519)
3072 SHA256:6zpOXvNpQQZUMevJe+/bSGcySCnqBGZE8p2hoMjPNh0 no comment (RSA)
256 SHA256:ZMFgHvPdsZSIuGyEkv1WFgJT3eGjSC4AI/HwTMH4s8o no comment (ECDSA)
  • 需要:如果服務(wù)器使用的不是默認(rèn)端口的話,需要指定端口才能查看
$ ssh-keygen -F [192.168.3.23]:2222
# Host [192.168.3.23]:2222 found: line 5
[192.168.3.23]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmXkFXdtiy/3q/+C0n4oZWjk9Ooaue+qH5Ps4BIHdlVgyu3jaTJ8NMmaYebgjkzYca+GvHM4ymZB5pt/iR9DDcjpwA66nVjra8SWLZqxsnlbcs8RMR2fp8dVPvnG2uKnn3S0CHV/7/XbFdvX0nzWxHdA/YqVlUR4TPKzhAmM62DBEvRdWpuok0r2xTsE8Q/xv+SKE08t3BzUde4iDV8rEoJQ130W96sZBnEadQtr//jPIDuJ4Vjfu/xzDgqLF463AGB51E6lu9Ix9TmC+nfHCENPRrBHh6VgxHVnNi5rv9NO4kRT1CNMIeVOVccP7NY+v6j2INiEX6vo08HHK0CoQp

1.6-R刪除指定服務(wù)器對(duì)應(yīng)的公鑰

當(dāng)遠(yuǎn)程服務(wù)器被重新安裝、密鑰被更新或 IP 被他人占用時(shí),就會(huì)出現(xiàn)類似于下面的警告

?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:OYtwkILXy0dkzCTnO+2YclxZVOzQw9SzBHuaF3ve6Is.
Please contact your system administrator.
Add correct host key in /c/Users/Admin/.ssh/known_hosts to get rid of this message.
Offending RSA key in /c/Users/Admin/.ssh/known_hosts:2
Host key for [192.168.3.23]:2222 has changed and you have requested strict checking.
Host key verification failed.
Connection closed

# ??????翻譯成中文就是??????
該主機(jī)的公鑰指紋跟 ~/.ssh/known_hosts 文件儲(chǔ)存的不一樣,必須處理以后才能連接。
這時(shí),你需要確認(rèn)是什么原因,使得公鑰指紋發(fā)生變更,到底是惡意劫持,還是管理員變更了 SSH 服務(wù)器公鑰。
# ??????翻譯成中文就是??????

如果服務(wù)器是值得被信任的,可以通過(guò)-R配置項(xiàng)刪除保存在known_hosts 文件中的服務(wù)器公鑰

當(dāng)通過(guò)ssh命令再次連接服務(wù)器時(shí),新的服務(wù)器公鑰指紋就會(huì)被重新添加到known_hosts 文件中。

# 刪除指定服務(wù)器對(duì)應(yīng)的公鑰
$ ssh-keygen -R 172.22.118.28
# Host 172.22.118.28 found: line 6
# Host 172.22.118.28 found: line 7
# Host 172.22.118.28 found: line 8
~/.ssh/known_hosts updated.
Original contents retained as ~/.ssh/known_hosts.old

# 再次連接時(shí)會(huì)出現(xiàn)提示
$ ssh apluser@172.22.118.28
The authenticity of host '172.22.118.28 (172.22.118.28)' can't be established.
ED25519 key fingerprint is SHA256:R6Ra3HpmUF8+MgTj2Rd7guogV2STz1mjLhfIGA7fJB8.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

二. ssh命令

2.1-v查看連接的詳細(xì)信息

2.2-p指定端口號(hào)

ssh -p 22 apluser@172.22.118.28

2.3 連接遠(yuǎn)程服務(wù)器的時(shí)候執(zhí)行命令

2.3.1 連接單臺(tái)服務(wù)器時(shí),執(zhí)行命令

# 要指定的命令可以不帶單引號(hào)
ssh apluser@172.22.118.28 ls -l ~/work/
# 但最好還是帶著單引號(hào)
ssh apluser@172.22.118.28 'ls -l ~/work/'

2.3.2 批量連接多臺(tái)服務(wù)器時(shí)執(zhí)行命令

執(zhí)行后,只需要輸入服務(wù)器的密碼即可

for i in {1..2}; do ssh c1kap1${i}a 'ls -l /data/work'; done

如果使用的TeamTerm連接linux服務(wù)器的話,還可以寫一個(gè)ttl腳本來(lái)批量執(zhí)行

; -----------------------------------------
exec_cmd = "'ls -l /data/work/'"
SSH_PWD = 'pwd001'
; -----------------------------------------

for i 1 2
	; 拼接ssh命令
	sprintf2 ssh_cmd 'ssh c1kap1%da %s' i exec_cmd
	
	; 執(zhí)行ssh命令
	sendln ssh_cmd
	wait 'password:'
	
	sendln SSH_PWD
	wait '$'
next

2.4-t強(qiáng)制分配一個(gè)偽終端

  • 默認(rèn)情況下,如果你用 ssh 執(zhí)行一個(gè)命令(比如 ssh user@host ls),ssh 不會(huì)分配交互終端,而是直接執(zhí)行命令輸出結(jié)果。
  • 但是如果執(zhí)行sudo ls -ld /*這種需要交互式輸入的命令,就會(huì)報(bào)錯(cuò)
  • 此時(shí)使用-t分配一個(gè)偽終端,可以進(jìn)一步輸入命令
# ??????遠(yuǎn)程連接服務(wù)器時(shí)候,執(zhí)行sudo 命令??????
$ ssh -t apluser@172.22.118.28 'sudo ls -ld /* | head'
apluser@172.22.118.28's password:
[sudo] password for apluser:
drwxr-xr-x   3 root root    4096 Jun  7 07:26 /Docker
lrwxrwxrwx   1 root root       7 Oct 26  2022 /bin -> usr/bin
drwxr-xr-x   2 root root    4096 Apr 18  2022 /boot
drwxr-xr-x   8 root root    3160 Aug 11 14:42 /dev
drwxr-xr-x  74 root root    4096 Aug 11 18:26 /etc
drwxr-xr-x   3 root root    4096 May 25 20:35 /home
-rwxrwxrwx   1 root root 2724464 Apr 24 08:34 /init
lrwxrwxrwx   1 root root       7 Oct 26  2022 /lib -> usr/lib
lrwxrwxrwx   1 root root       9 Oct 26  2022 /lib32 -> usr/lib32
lrwxrwxrwx   1 root root       9 Oct 26  2022 /lib64 -> usr/lib64
Connection to 172.22.118.28 closed.

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用PSSH批量管理Linux服務(wù)器

    使用PSSH批量管理Linux服務(wù)器

    pssh是python開(kāi)發(fā)的一個(gè)用來(lái)批量管理linux主機(jī)的工具,現(xiàn)在我們來(lái)介紹pssh的使用方法。
    2018-09-09
  • Linux宿主機(jī)下/容器下如何修改進(jìn)程打開(kāi)的文件句柄數(shù)(open files)

    Linux宿主機(jī)下/容器下如何修改進(jìn)程打開(kāi)的文件句柄數(shù)(open files)

    系統(tǒng)級(jí)的max-file和進(jìn)程級(jí)的ulimit-n分別控制文件句柄的最大數(shù)量,系統(tǒng)級(jí)限制整個(gè)系統(tǒng),而ulimit-n只限制單個(gè)進(jìn)程,當(dāng)進(jìn)程打開(kāi)的文件句柄數(shù)超限時(shí),會(huì)報(bào)“Too many files open”錯(cuò)誤,可以通過(guò)特定命令查看和修改這些值
    2024-10-10
  • Linux下關(guān)于coredump的定位方法說(shuō)明

    Linux下關(guān)于coredump的定位方法說(shuō)明

    這篇文章主要介紹了Linux下關(guān)于coredump的定位方法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • jmeter在linux系統(tǒng)下運(yùn)行及本地內(nèi)存調(diào)優(yōu)的方法詳解

    jmeter在linux系統(tǒng)下運(yùn)行及本地內(nèi)存調(diào)優(yōu)的方法詳解

    這篇文章主要介紹了jmeter在linux系統(tǒng)下運(yùn)行及本地內(nèi)存調(diào)優(yōu)的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Linux系統(tǒng)下防火墻配置的詳細(xì)指南

    Linux系統(tǒng)下防火墻配置的詳細(xì)指南

    防火墻是一種網(wǎng)絡(luò)安全設(shè)備,它能夠:監(jiān)控和過(guò)濾進(jìn)出網(wǎng)絡(luò)的流量阻止不安全的連接保護(hù)計(jì)算機(jī)和網(wǎng)絡(luò)免受未授權(quán)訪問(wèn)創(chuàng)建一個(gè)安全邊界簡(jiǎn)單來(lái)說(shuō),防火墻就像是電腦的"安全門衛(wèi)",決定誰(shuí)能進(jìn)、誰(shuí)能出,本文給大家介紹了Linux如何配置防火墻,需要的朋友可以參考下
    2025-07-07
  • 詳解Ubuntu下安裝和配置Apache2

    詳解Ubuntu下安裝和配置Apache2

    本篇文章主要介紹了詳解Ubuntu下安裝和配置Apache2,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。有興趣的朋友可以了解一下。
    2016-12-12
  • CentOS 8 正式發(fā)布

    CentOS 8 正式發(fā)布

    CentOS 8 和RedHat Enterprise Linux 8發(fā)行的版本是一致的,都是基于 Fedora 28 和 內(nèi)核 4.18.支持傳統(tǒng)的、新興的工作負(fù)載的工具,為用戶提供了穩(wěn)定的、安全的、一致的基礎(chǔ)、跨混合云部署
    2019-09-09
  • Linux下“/”和“~”的區(qū)別詳解

    Linux下“/”和“~”的區(qū)別詳解

    這篇文章主要介紹了Linux下“/”和“~”的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 詳解幾種Linux 查詢外網(wǎng)出口IP命令的方法

    詳解幾種Linux 查詢外網(wǎng)出口IP命令的方法

    本篇文章主要介紹了詳解幾種Linux 查詢外網(wǎng)出口IP的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • linux兩臺(tái)服務(wù)器實(shí)現(xiàn)自動(dòng)同步文件

    linux兩臺(tái)服務(wù)器實(shí)現(xiàn)自動(dòng)同步文件

    這篇文章主要介紹了linux兩臺(tái)服務(wù)器實(shí)現(xiàn)自動(dòng)同步文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論

昌江| 新兴县| 双柏县| 克拉玛依市| 台湾省| 宜兰县| 阿尔山市| 旅游| 桂平市| 松原市| 黑水县| 鄂温| 胶南市| 丹棱县| 顺平县| 保康县| 礼泉县| 柳林县| 扎赉特旗| 肥城市| 施秉县| 克山县| 莆田市| 磐安县| 鄂尔多斯市| 崇仁县| 平江县| 当阳市| 滨海县| 芦溪县| 喀喇沁旗| 连山| 通州区| 九寨沟县| 铜鼓县| 绥棱县| 科尔| 兴业县| 林西县| 凤翔县| 齐齐哈尔市|