まず、これが非常に明白でマイナーな質問であればお詫び申し上げます。私はまだLinux / Unixについて詳しく学んでいます。
ログインするには、SSHと秘密鍵を介したアクセスを必要とするいくつかのサーバーを使用します。したがって、コマンドは次のようになります。
ssh -i /path/to/key.pem [email protected]
私は自分の呼び出しを使用しaccess
、私がログインしているサーバーを制御するために背後にあるパラメータのデフォルトのスイッチステートメントのみを持つことができるbashスクリプトを作成しました。たとえば、server1にログインするには、access server1
適切なコマンドが実行されます。ssh
質問
電話がssh
切れて空の端末だけが残りました。SIGINT
(Ctrl+ C)は許可されておらず、使用するにはターミナルを終了して再開する必要があります。
私が理解したところ、これは秘密鍵に対する権限の問題かもしれません。現在の権限はです600
。変更すると、644
権限が開いていないというエラーが発生し、ssh
試みが終了します。どんな提案がありますか?
答え1
これを行うには、
ssh_config
bashスクリプトなどのhara-kiriを作成せずにホストエイリアスとキーを指定して保存できます。デフォルトでは、~/.ssh/config
次の形式で保存されます。Host host1 Hostname 000.000.000.000 User user IdentityFile /path/to/key.pem
その後、単に電話するだけです。
ssh host1
到着する、得る
000.000.000.000
本当にやりたいなら効果的なそして、短いショートカットを使用すると、
alias
bashスクリプトよりもbashが適しています。alias access="ssh -i /path/to/key.pem [email protected]"
Bashスクリプトを実際に使用するには、
-tt
次のオプションを使用してsshがリモートサーバーにTTYを割り当てるように強制する必要があります。ssh -tti /path/to/key.pem [email protected]
ssh
より多くのヒントについては、およびマニュアルページを参照してくださいssh_config
。
答え2
私は通常、サーバーで(仮想化を使用すると仮定し、コンソールを介して)パスワード認証を提供し、キーベースの認証を提供しますssh-copy-id soandso@server
。ほとんどの場合、コンピュータの公開鍵を使用してリモートサーバーの秘密鍵を認証します。
公開鍵の標準権限は必要ですが、私が知っている限り、秘密鍵644
はそうする必要があります。700
問題が公開鍵権限ではないことは確実ですか?
2つのことを確認することをお勧めします。まず、上記のSSH接続文字列を試してから、-vまたは-vvvをオプションとして追加します。これにより、問題がどこにあるかを明確に知ることができます。次に、/etc/ssh/sshd_config
サーバーのsshd設定ファイル()を確認し、使用する接続プロトコルが有効になっていることを確認します。これは、次の2行をyesに設定するのと同じくらい簡単です。
RSAAuthentication yes PubkeyAuthentication yes
頑張ってください!