0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SSHコマンドを使って踏み台サーバ経由でリモートログインする(Mac/Linux版)

Last updated at Posted at 2021-06-25

前提環境

  • クライアント Mac
  • サーバ Linux

SSHとは

サーバへの安全なリモートログインを提供する仕組み
認証の方法としてパスワード方式と鍵方式の2つがあるが今回扱うのは後者
詳しい仕組みが知りたい場合は以下の記事がオススメ

SSHで実行サーバに初回ログインするまでの手順(ざっくり)

  1. ローカルマシンで公開鍵・秘密鍵の作成
  2. 作成したファイルのパーミッションを正しく設定する
  3. 公開鍵id_rsa.pubをサーバ管理者に渡し、サーバ管理者はそれぞれのサーバの認証済み鍵リストにその公開鍵を追加する
  4. SSHコマンドで踏み台サーバ経由で実行サーバにログインする

秘密鍵・公開鍵の作り方

ssh-keygenコマンドを用いて作成する

$ mkdir -p ~/.ssh && cd ~/.ssh
$ ssh-keygen -t rsa
$ ls # 確認
id_rsa id_rsa.pub

ファイルやディレクトリのパーミッションの設定

秘密鍵ファイルと~/.sshディレクトリのパーミッションを正しく設定する

$ chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa

踏み台サーバ経由でSSH接続

~/.ssh/configを以下のように編集する(VScodeで編集する場合は、code ~/.ssh/configで可能)

~/.ssh/config
Host ProxyServerHoge # 好きな名前で
    Hostname      123.456.789.0 # 踏み台サーバのIPアドレス
    Port          1001 # 踏み台サーバのポート番号
    User          taro # ログインユーザ名
    IdentityFile  ~/.ssh/id_rsa
Host TargetServer # 好きな名前で
    HostName      987.654.321.0 # 目標サーバのIPアドレス
    Port          1002 # 目標サーバのポート番号
    User          taro # ログインユーザ名
    ProxyCommand  ssh -CW %h:%p -4 ProxyServerHoge

シェル上で以下のコマンドを実行し、接続

$ ssh TargetServer

初回はホスト認証で以下のように聞かれるので

Are you sure you want to continue connecting (yes/no)?

yesと入力してEnter

ローカルマシンのVSCodeからリモートのファイルを編集する

Microsoft製のRemote - SSHというパッケージを使用する
内部的にやってることはSSHポートフォワーディング
具体的な手順は以下のよう

  1. パッケージ一覧からRemote - SSHをインストール
image.png
  1. F1でコマンドパレットを開き、「Remote-SSH: Connect to Host...」というコマンドを選択する
image.png
  1. 先ほど~/.ssh/configに保存した接続先ホスト一覧が表示されるので、接続したいホストを選択する
  2. 接続に成功するまで待ってから、 「フォルダーを開く」をクリックし、自分が開きたいフォルダーを選択する
  3. あとはローカルファイルを編集するのと同様

SSHログインしてコマンドを実行する(余興)

ssh TargetServer '実行したいコマンド'
# 例
ssh TargetServer 'ls'

ローカルのシェルスクリプトをサーバ上で実行するなら

ssh TargetServer 'sh -s' < sample.sh

という方法もある

##参考文献

インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?