たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

ssh (secure shell) 入門

SSH (secure shell) とは、外部のコンピュータへ安全にアクセスする方法のこと。
より正確には、安全でないネットワークを介しながら、安全なリモートログインと安全なネットワークサービス (shell操作など) を実現するためのプロトコル

SSHとは

Secure Shell (SSH) is a protocol for secure remote login and other secure network services over an insecure network.
RFC 4251

SSHの仕組み

べんきょうちゅう

典型的にはTCP/IP上で通信を行う。しかし必ずしもTCP/IPに限定されるわけではない (reliable data stream上であればよい)。

The transport layer will typically be run over a TCP/IP connection, but might also be used on top of any other reliable data stream.
RFC 4251

SSHを利用する

SSHを利用したアプリケーションとしてはOpenSSHがデファクトスタンダード.

OpenSSH

クライアント

接続先情報などを明示的にコマンドラインを介して、あるいは暗示的に設定ファイルを介して与え、リモートホストへ接続する。
設定ファイルには名前付きssh設定を複数用意しておけるので、とても楽になる.
ホストから渡された秘密鍵でAuthZだとホストごとに引数変えたりしなければいけないので、とても重宝する (EC2とか).

設定ファイル(ssh_config - OpenSSH SSH client configuration files)は以下の優先順位で2種類

  • ~/.ssh/config (ユーザー設定)
  • /etc/ssh/ssh_config (システム設定)

SSHクライアント on Windows

Windowsにはsshクライアント (OpenSSH) がプリインストールされており、PowerShellから呼び出せる.

PS > Get-Command ssh

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     ssh.exe                                            7.7.2.1    C:\WINDOWS\System32\OpenSSH\ssh.exe

正確には、WindowsFeatures on Demand (FODs、オンデマンド機能) として、OpenSSH Clientが公式に用意され、Windowsにプリインストールされている。
プリインストールはApril 2018 Updateから [ref].