質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

1403閲覧

ssh多段接続時の鍵作成方法について

tk_flavor

総合スコア104

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2017/09/07 11:05

編集2017/09/07 11:40

実現したい事は下記になります

社内から踏み台のAサーバに鍵認証でsshアクセスし、その鍵を使い、本番Bサーバにsshログインさせたい
また、WinSCPなどのFTPツールでファイル転送する際に踏み台から自動でBサーバまでトンネリングさせたい

この時、サーバアカウント作成時の鍵作成はどのように行えばよろしいのでしょうか

大変お手数ですが、AサーバとBサーバのアカウント作成時の鍵作成方法をご教示頂けますと幸いです

よろしくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

SSH認証エージェントをつかって、秘密鍵を管理して多段 SSH するのであれば、通常のSSH と同じで、ローカル側のクライアントに SSH鍵ペアを作成するだけで、OK です。(当然ですが、サーバにログインするためには、ローカルで作成した公開鍵を 中継サーバ、本番サーバに登録しておく必要はあります。)

ログイン時に認証エージェントを自動起動する、認証エージェントの転送を許可する等の設定が必要ですが、中継サーバに秘密鍵を置いて無くても、認証エージェントがローカルの秘密鍵を利用して、中継サーバを経由して本番サーバにログイン可能になります。

なお、~/.ssh/config で、proxycommand の設定をしておけば、ローカルから中継サーバに ssh コマンドで接続すると目的のサーバに自動的に多段SSHで接続され、本番サーバにつながったように見せかけることも可能です。


(参考)

多段SSH に関しては、以下のWebサイトが参考になると思います。

ポートフォワードに関しては、以下が参考になると思います。

投稿2017/09/08 01:12

編集2017/09/08 01:14
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

社内から踏み台のAサーバに鍵認証でsshアクセスし、その鍵を使い、本番Bサーバにsshログインさせたい

普通セキュリティの観点からAサーバー、Bサーバーで別々のSSHキー・公開キーのセットを作成します。下記は別々のSSHキーを作成するものとして進めます。

Aサーバー上でSSH鍵作成

AサーバーにSSHログインしてから下記コマンドで秘密キーを新規作成します。

bash

1mkdir ~/.ssh 2ssh-keygen -t rsa -b 4096 -C 'メールアドレス or ユーザー名@ホスト名など' 3 4#秘密キーのファイルパスを聞いてくるのでそのまま[ENTER]を押す 5#パスフレーズを聞かれるので、パスフレーズを入力(←何か必ず指定してください)

以上でAサーバー上での秘密キー作成は完了です。

この秘密キーをご自分のPC上にダウンロードしておきます。
次に、公開キーをサーバーAに設定して実際に秘密キーを使ってログインできるようにします。

bash

1cd ~/.ssh 2cat .id_rsa.pub >> .authorized_keys

次にAサーバーに作成した秘密キーをつかって実際にSSHログインできるか確認します。

bash

1ssh localhost 2 3# sshの~/.ssh/known_hostsに追加するか聞かれるので[yes]を入力

上記で、Aサーバー上でローカルSSHログインできない場合は、/home/ログインユーザーのパーミッションを確認してみてください。755よりも甘く設定している場合(775, 777など)はログインに失敗します。

WinSCPの場合はPuttyGenで上記ダウンロードしたAサーバーの秘密キーをPutty形式に変換します。

  1. グローバルメニューの[Conversions > import key]を選択
  2. Aサーバーの秘密キーファイルを選択
  3. [save private key]をクリックしてファイル名を設定して保存(拡張子は.ppk)

Bサーバー上でSSH鍵作成

Bサーバー上にSSHでログインして、上記Aサーバーで行ったことと同様のことをBサーバー上でも行います。

WinSCP上の設定

  1. 新しいサイト
  2. 目的のログイン先のBサーバーの設定を下記のように入力
項目値(例)
ホスト名BサーバーのIPアドレス(or ホスト名)
ポート番号22
ユーザー名BサーバーのSSHログインユーザー名
パスワード(空欄)

次に[設定]をクリックして設定ウィンドウを開きます。

  1. サイドメニュー[SSH>認証]を開く
  2. 認証条件>秘密鍵にBサーバーの秘密キーを設定(PuttyGen.ppk形式に変換したファイル)
  3. サイドメニュー[接続>トンネル]を開く
  4. Aサーバーの設定を下記のように入力
項目値(例)
ホスト名AサーバーのIPアドレス(or ホスト名)
ポート番号22
ユーザー名AサーバーのSSHログインユーザー名
パスワード(空欄)
ローカルトンネルポート自動選択(初期値のまま)
トンネル認証パラメーター>秘密鍵Aサーバーの秘密キーを設定(PuttyGen.ppk形式に変換したファイル)

[OK]ボタンを押して[設定]ウィンドウを閉じます。そして、[保存]ボタンを押してすべて保存します。
以上で完了です。

PagentにSSHキーを登録しておけばパスフレーズを毎回入力する必要がなくなります。

投稿2017/09/08 01:21

Tomak

総合スコア1652

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

『その鍵を使い』とありますが、どうしても同じキーペアを使いたいのでしたら、社内(秘密鍵X)→Aサーバ(公開鍵Y)で接続できる場合、秘密鍵XをAサーバに、公開鍵YをBサーバにコピーして、社内→Aサーバ、その後(手作業で)Aサーバ→Bサーバとログインできることを確認してください。まずはそこからです。
WINSCPやトンネリングは別質問にしたほうがいいと思います。

投稿2017/09/07 13:57

hotta

総合スコア1613

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問