【電通大生向け】solへのssh接続・scpを楽にしたい

環境

  • Unix, Linux系OS
  • MacOS
    • 多分問題ないはず
  • PuTTYなど、ターミナルを使わない方法は非対応

どう変わるか

ssh

ssh接続は、これが

$ ssh uecアカウント名@sol.edu.cc.uec.ac.jp

こうなる。圧倒的革命。

$ ssh sol

scp

scpは、solからファイルhoge.txt(ホームディレクトリにあるとする)を手元にコピーするなら、これが

$ scp uecアカウント名@sol.edu.cc.uec.ac.jp:~/hoge.txt .

こうなる。

$ scp -F ./.ssh/config sol:~/hoge.txt .

-Fで設定ファイルconfigを指定する。

scpは、手元のhoge.txtをsolのホームディレクトリにコピーするなら、これが

$ scp hoge.txt uecアカウント名@sol.edu.cc.uec.ac.jp:~/

こうなる。

$ scp -F ~/.ssh/config hoge.txt sol:~/

パスワードによるssh接続する方向け

configの設定

~/.ssh/configを編集する。~/.ssh/configという名のファイルがない場合は、新しく作成すること。拡張子はない。ファイルに下記の文章を書き込むこと。

Host sol
  HostName sol.edu.cc.uec.ac.jp
  User uecアカウント名
  Port 22
  ServerAliveInterval 60

Host solsolは、好きなように編集してよい。

ServerAliveInterval 60は、サーバに60sごとにパケットを送って、タイムアウトによる接続切断を回避するための設定。

最後にアクセス権限を調整。

$ chmod 600 ~/.ssh/config

設定はこれだけです。実際に、solに接続してみよう。

$ ssh sol

鍵ペアによるssh接続する方向け

鍵ペアの作成

SSH — ITC ユーザーズガイド ドキュメントに従い、公開鍵、秘密鍵を作成する。「OpenSSH の ssh-keygen コマンド (UNIX, macOS)」の項を参考にして欲しい。その他の方法で作成した鍵ペアでは、成功しないことがある。このサイトでは、丁寧に説明されている。ざっくりとした手順は、下記の通り。

  1. ssh-keygenにて、公開鍵と秘密鍵を作成
  2. ~/.ssh/秘密鍵id_rsaと公開鍵id_rsa.pubがともに作成されていることを確認する
  3. 公開鍵は、接続先であるsolにも保存しておく必要がある
    • sol上の~/.ssh/authorized_keysに、id_rsa.pubと同一の文字列をコピペしよう

configの設定

~/.ssh/configを編集する。~/.ssh/configという名のファイルがない場合は、新しく作成すること。拡張子はない。ファイルに下記の文章を書き込むこと。

Host sol
  HostName sol.edu.cc.uec.ac.jp
  User uecアカウント名
  Port 22
  IdentityFile ~/.ssh/id_rsa
  ServerAliveInterval 60

Host solsolは、好きなように編集してよい。

IdentityFile ~/.ssh/id_rsaでは、公開鍵に対応する秘密鍵を指している。

ServerAliveInterval 60は、サーバに60sごとにパケットを送って、タイムアウトによる接続切断を回避するための設定。

そして、アクセス権限を調整。

$ chmod 600 ~/.ssh/config

最後に、solに接続してみよう。

$ ssh sol

ログインには、先ほど作成したパスフレーズを用いる。

Enter passphrase for key '/home/user名/.ssh/id_rsa':

余談

ファイルの転送コマンドには、scp以外にsftpがある。こちらも、sshのconfigの設定により楽にログインできる。

$ sftp -F ~/.ssh/config sol

sftpコマンドでも、ファイルの転送は問題ない。接続が完了したら、下記のような文章が表示される。

Connected to sol.
sftp>

cdコマンドで、solの中を移動(もちろんホームディレクトリ内ではあるだろうが)し、putコマンドでアップロード、getコマンドでファイルをダウンロードすることになる。

参考