ちろる

理系大学生が自由気ままに

インフラの知識が欲しい!SSH編

※本ブログは知識を蓄えた直後に執筆されているので、間違った情報が載っていることも多々あります。そのため、メディアリテラシーを必須とします。ご了承ください。

SSHとは

SSHは、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。インストールに関してはUbuntu及びMacを用いているので、Windowsなどの場合には各自検索して行ってください。インストール以外は基本的に本記事のコマンドで動くと思います。

SSHの認証方式

接続するための認証方式はパスワード認証方式公開鍵認証方式 の2通りがある。パスワード認証方式の方が簡単だが、公開鍵認証方式の方がセキュリティ面では良い。

SSHDSSH

SSHSSHDの違いは以下のようになる。

SSH(クライアント):他のサーバにSSHで接続する設定
SSHD(デーモン):他のサーバからSSHで接続されるときの設定

ログインしたいマシン側にSSHDを、クライアントとなるマシン側にSSHの設定を行う。

SSHDのサービスの設定と開始

まずは、SSHDの設定・管理に必要なaptitudeをインストールする。

$ sudo apt-get install aptitude

次にaptitudesshをインストールする。

$ sudo aptitude install ssh

/etc/ssh/sshd_configを編集し、PermitRootLoginの行を次のように書き換える。僕の環境でデフォルトは"PermitRootLogin prohibit-password"のようになっていた。

PermitRootLogin no

以下のコマンドでSSHDのサービスを開始することができる。

$ sudo /etc/init.d/ssh restart

これでデーモン側の設定が完了した。デーモン側で以下のコマンドにより、IPアドレスを取得しメモする。

$ ifconfig

クライアントからログイン

sshのインストールされているクライアントPCで、以下のコマンドを実行。

$ ssh user名@メモしたipアドレス

これだけでログインが完了。$の前がデーモンのターミナルと同じような表記になっていれば成功だ。

ファイルの転送

scpコマンドを用いることによってリモート・ホスト間でファイルを転送することができる。

クライアントからファイルを送信

$ scp file名 user名@ipアドレス:$home

デーモンからファイルを受信

$ scp user名@ipアドレス:file名 保存先のディレクトリ

ディレクトリは-rオプションをつけると送れる。

ドメイン名の設定

いちいちipアドレスを入力するのは面倒なのでドメイン名を紐づける。
/etc/ssh/ssh_configに以下を追記。

Host 任意のドメイン名
  hostname ipアドレス
  user ユーザー名

以上により"ssh ユーザー名@ipアドレス"と入力していたのが以下だけでログインできるようになる。

ssh 設定したドメイン名




qiita.com
qiita.com
takuya-1st.hatenablog.jp
【 scp 】 リモート・マシン間でファイルをコピーする | 日経 xTECH(クロステック)