我想要做的就是能夠在同一臺服務器上爲不同的用戶使用多個SSH密鑰。我有一臺服務器用於網站主機和SSH隧道。我已經建立了一個沒有專門用於SSH隧道的登錄shell的帳戶。我使用root用戶來管理系統的其餘部分。如何爲同一主機使用多個SSH密鑰?
我有2個SSH密鑰,一個用於root用戶密碼,另一個沒有SSH通道密碼。當我以隧道用戶身份進行連接時,如何做到這一點,它使用隧道密鑰,並且當我以root用戶身份進行連接時,它使用根密鑰?
我想要做的就是能夠在同一臺服務器上爲不同的用戶使用多個SSH密鑰。我有一臺服務器用於網站主機和SSH隧道。我已經建立了一個沒有專門用於SSH隧道的登錄shell的帳戶。我使用root用戶來管理系統的其餘部分。如何爲同一主機使用多個SSH密鑰?
我有2個SSH密鑰,一個用於root用戶密碼,另一個沒有SSH通道密碼。當我以隧道用戶身份進行連接時,如何做到這一點,它使用隧道密鑰,並且當我以root用戶身份進行連接時,它使用根密鑰?
如果您爲root用戶設置了一個密鑰,另一個用於隧道用戶(通過服務器/遠程機器上的authorized_keys),則應自動選取右鍵。
這是基於假設您已將密鑰加載到ssh-agent
中,並且它們可用於ssh
實用程序。
否則,您可以使用ssh -i <identity file>
手動指定密鑰。
除此之外,你可以設置別名,在你的ssh_config中(的〜/ .ssh/config中或/ etc/SSH/ssh_config中):
Host server-root
User root
IdentityFile <path to your key>
Hostname <real hostname>
Host server-tunnel
User tunnel-user
IdentityFile <path to your key>
Hostname <real hostname>
然後您使用ssh server-root
或ssh server-tunnel
。
但我會說與ssh-agent合作可能是最簡單的設置。
如果你想自動選擇沒有ssh-agent的正確密鑰,你可以通過-i
指定兩個密鑰。
從OpenSSH的手冊頁引用:
-i identity_file
Selects a file from which the identity (private key) for public
key authentication is read. The default is ~/.ssh/identity for
protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and
~/.ssh/id_rsa for protocol version 2. Identity files may also be
specified on a per-host basis in the configuration file. It is
possible to have multiple -i options (and multiple identities
specified in configuration files). ssh will also try to load
certificate information from the filename obtained by appending
-cert.pub to identity filenames.
所以沒有辦法爲它來檢測我試圖登錄,哪些用戶? – 2013-02-15 05:40:48
@ alfonzo1955'detect'是什麼意思?在進行任何身份驗證之前,必須將用戶傳遞給ssh服務器。如果我沒有弄錯,你的問題是如何分開鑰匙。 – sstn 2013-02-15 07:50:28
我不想使用ssh-agent。所以沒有辦法讓它根據我試圖登錄的用戶自動選擇正確的密鑰? – 2013-02-15 15:57:16