リモートシステムで追加のsshdプロセスを開始しようとしました。使用したい新しいsshdプロファイルで作業ディレクトリを作成しました。
このディレクトリの構成ファイルを使用してsshdを実行しようとすると、ホストキーが見つからないというメッセージが表示されます。作業ディレクトリの場所を指定するスイッチを実行して欠落しているホストキーを生成しようとしましたが、ssh-keygenssh-keygen -A
は引き続き私が指定したディレクトリ-f
にキーを配置しようとします。/etc/ssh/
/etc/sshへのアクセス権がないため失敗します。
このパスにアクセスせずにどのようにこれらのキーを生成できますか?
答え1
この-A
オプションはssh-keygen
世代を伝えます。ホストキー。マニュアルページによると、その用途ssh-keygen
は次のとおりです。
一般に、公開鍵認証でSSHを使用したい各ユーザーは、このコマンドを1回実行するか、またはから
認証鍵を生成します。~/.ssh/identity
~/.ssh/id_ecdsa
~/.ssh/id_dsa
~/.ssh/id_rsa
また、システム管理者がホストキーを生成するために使用できます。
概要には、-A
他のオプションなしで1行だけが一覧表示されます。
SYNOPSIS
ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
[-f output_keyfile]
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
ssh-keygen -i [-m key_format] [-f input_keyfile]
ssh-keygen -e [-m key_format] [-f input_keyfile]
ssh-keygen -y [-f input_keyfile]
ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
ssh-keygen -l [-f input_keyfile]
ssh-keygen -B [-f input_keyfile]
ssh-keygen -D pkcs11
ssh-keygen -F hostname [-f known_hosts_file] [-l]
ssh-keygen -H [-f known_hosts_file]
ssh-keygen -R hostname [-f known_hosts_file]
ssh-keygen -r hostname [-f input_keyfile] [-g]
ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
ssh-keygen -T output_file -f input_file [-v] [-a num_trials] [-K checkpt]
[-W generator]
ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
[-O option] [-V validity_interval] [-z serial_number] file ...
ssh-keygen -L [-f input_keyfile]
ssh-keygen -A
したがって、(ソースコードを修正して直接コンパイルすることに加えて)あなたが要求することは意図された用途ではありません。
追加資料:
答え2
Thomasがリンクしたマニュアルページによると、-f
ファイルssh-keygen -A
プレフィックスをサポートして指定するので、この機能が追加されたようです。
-A
rsa
すべての主キータイプ(、、および)ecdsa
のホストキーがed25519
まだない場合に生成します。ホストキーは、主キーファイルパス、空のパスワード、キータイプの基本ビット、および基本記述を使用して生成されます。また、指定した場合、-f
その引数は生成されたホストキーファイルのデフォルトパスへの接頭辞として使用されます。これは/etc/rc
新しいホストキーを生成するために使用されます。
ノートこれらのフォルダは、実行する前にetc/ssh
出力フォルダの下にある必要があります。ssh-keygen
$ mkdir -p output/etc/ssh
$ ssh-keygen -A -f output
ssh-keygen: generating new host keys: RSA ECDSA ED25519
$ ls output/etc/ssh/
ssh_host_ecdsa_key ssh_host_ecdsa_key.pub ssh_host_ed25519_key ssh_host_ed25519_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub
答え3
Dockerにアクセスできる場合は、コンテナの外側に新しい永続ホストキーを生成するために次のものを使用しました。
docker run -d --name get_host_keys lscr.io/linuxserver/openssh-server:latest
sleep 5
docker cp get_host_keys:/etc/ssh/. .
rm *config*
docker stop get_host_keys
docker rm get_host_keys