2

python Paramiko を使用して、ssh を使用して、vps プロバイダーでホストされているリモート ubuntu ボックスに接続しています。Windows 7 ベースのクライアント マシンを使用すると、次のように接続できます。

import paramiko
import binascii
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='HOSTNAME', username='USERNAME', password='PASSWORD')

これで問題ありませんが、ホスト サーバーの ID を確認したいのですが、Windows を使用しているため、Paramiko は known_hosts ファイルなどを取得できません。次のコードを試しました:

#... after connection is successful
keys = ssh.get_host_keys()
key = keys['HOSTNAME']['ssh-rsa']
print binascii.hexlify(key.get_fingerprint())
# key.get_fingerprint() returns the md5 hash of 
# the public part of the key (whatever that means)

次のような出力が得られます。

a42273f83e62d65cc87231a2ba33eff3

問題は、VPS プロバイダーの cpanel に、次のような RSA および DSA ホスト キー フィンガープリントがリストされていることです。

RSA 1b:c2:f4:8f:f2:86:fc:f2:96:ba:cc:24:41:e9:d7:86
DSA 36:b9:1f:ad:53:b5:c4:38:78:bf:cb:9d:38:fa:44:ce

見られるように、どのフィンガープリントも生成されたものと一致しません。手動で生成した指紋を、リモート ホストの cpanel の指紋値と比較するにはどうすればよいですか? 私がしていることは正しいですか?

4

1 に答える 1

0

解決しました。コントロール パネルに表示される RSA キー フィンガープリントは、VPS ホスト用ではなく、帯域外の特別なコンソール用であることが判明しました。(VPS ホストの) 実際のキーは /etc/ssh/ssh_host_rsa_key.pub の下にあり、フィンガープリントの値 (その MD5 ハッシュ) は、クライアント側の検証コードから取得したものとまったく同じです。ですから、最初から問題はありませんでした。

于 2012-08-30T21:22:58.890 に答える