SSH接続を使用することで、サーバー上のファイル操作(編集・コピー・削除・圧縮など)をコマンドから実行できるようになります。SSH接続では、ネットワーク上の通信が全て暗号化されるため、操作を安全に行うことができます。
今回はエックスサーバーの公開鍵を想定して、SSH接続の手順・実行コマンド・パーミッションについて解説します。
公開鍵の作成
エックスサーバーのSSH接続では、公開鍵認証のみに対応しているので、まずはサーバーに公開鍵を登録する必要があります。公開鍵の設定・作成・ダウンロードについては下記の記事で確認をしてみてください。
https://www.xserver.ne.jp/manual/man_server_ssh.php
公開鍵のダウンロード
サーバーに公開鍵を登録してダウンロードできたらディレクトリに移動します。今回はDownloadsディレクトリに公開鍵のファイルをダウンロードしました。
cd ~/Downloads
ダウンロードした公開鍵を~/.sshディレクトリに移動
mv ~/Downloads/サーバーID.key ~/.ssh
mv ファイル名 ディレクトリ名
上記のmvコマンドでファイルの移動を行うことができます。
~/.sshディレクトリのファイル名を変更
移動させた公開鍵のファイル名を任意のファイル名に変更します。受託制作などで一台のマシンで複数のクライアントのサーバーにSSHする場合は、わかりやすい名前をつけます。
例えば接続するサーバーのidがexampleの場合は、example_rsaとします。
mv Downloads.key example_rsa
mv ファイル名 変更するファイル名
上記のmvコマンドでファイル名をexample_rsaに変更しました。
パーミッションの変更
パーミッションとはファイルのアクセス権限のことで、ディレクトリや各ファイルのパーミッションの状態は、ls -lで確認することができます。
/* パーミッションを確認するコマンド */
ls -l
/* 実行結果 */
total 16
-rw-------@ 1 example staff 1766 Nov 18 20:26 example_rsa
-rw-r--r-- 1 root wheel 212 Nov 18 21:33 known_hosts
上記の出力結果を解説します。
r, w, xなどの文字列には重要な意味がありますので、この際に理解を深めてください。
パーミッションの値
上記コマンド実行結果のrw——-という値はパーミッションを「所有者」「所有グループ」「それ以外(他人)」の3つのグループに分けて表現されており、9文字の文字列(各グループ3文字)で表示されています。意味は下記の表の通りになります。
文字列 | 意味 |
r(read) | 読み取り可 |
w(write) | 書き込み可 上書きできる |
x(execute) | 実行可 ディレクトリ内に移動ができる |
今回作成した公開鍵のexample_rsaは、所有者権限がrwになっているので「読み取り」「書き込み」が行えるということになります。
パーミッションを数値で表す
パーミッションは500, 600, 700など3桁の整数で表現することもできます。
文字列 | 数値 | 意味 |
r(read) | 4 | 読み取り可 |
w(write) | 2 | 書き込み可 上書きできる |
x(execute) | 1 | 実行可 ディレクトリ内に移動ができる |
各グループを1ケタとし、それぞれのグループのパーミッション(r, w, x)の和を当てはめていきます。
-rw——-の場合
まず「所有者(私)」はrwなので6、「所有グループ」は何も記載がないので0、「それ以外」も0になり、パーミッションは600となります。
-rwx——-の場合
この場合、パーミッションは700になります
chmodコマンドでパーミッションを変更する
/* パーミッションを変更 */
chmod 700 ~/.ssh/example_rsa
/* パーミッションの確認 */
ls -s
/* 実行結果 */
-rwx------@ 1 example staff 1766 Nov 18 20:26 example_rsa
権限が一つ増えたのがわかります。上記の場合のパーミッションは700になるので、所有者は読み・書き・実行全てを行うことができます。
SSH接続で適切なディレクトリに公開鍵ファイルがあるにもかかわらずSSH接続を実行できない場合は、このパーミッションの設定が原因である可能性が高いので、知識として持っておくと無駄な時間をかけずに済みます。
SSHでログイン
下記のコマンドを実行することで、SSH接続でログインすることができます。
ssh -l example(サーバーID) -i example_rsa(公開鍵ファイル名) example.xsrv.jp -p 10022
[example@sv****]$
無事にログインすることができました。
SSH接続を行うことで、暗号化された通信下で安全にファイル操作を行うことができます。またディレクトリのバックアップ作成などにおいても、コマンドで圧縮などの処理を実行することができます。
SSHの仕組みについては下記の記事でまとめているので参考にしてください。
コメント