サーバ

デスクトップ・ユーザ流、sshのつかい方。サーバのファイル/パッケージ管理をらくらく行う。

オフィスでのグループ用のサーバ、自宅でのサーバを、Ubuntu系のデスクトップ版を動かすにあたって、管理作業のためにいちいちサーバの設置場所に移動するのは面倒。

遠隔すなわちリモートでサーバを操作する方法にはいくつもありますが、その一つとして前回は「Webmin」をご紹介しました。

今回は、「ssh」による遠隔操作について見ていきます。
sshというと、端末上から全てをコマンドで操作するというイメージがありますが、もっと簡単で便利な方法があります。

遠隔でサーバのファイル管理、パッケージ管理を楽に行える方法について見て行きましょう。

サーバに、OpenSSH serverをインストール

まずはサーバ側に「openssh-server」をインストールします。

サーバ側で端末を開いて次のコマンドを実行すれば追加でインストールされます。

sudo apt-get install openssh-server

#ssh(secure shell)は 、、遠隔操作を行うにあたって、すべての通信を暗号化し、ネットワークの盗聴などを防ぐことができる接続方法です。
通信相手の認証も行うことが出来ることでなりすましを防ぐことも可能となっています。


ファイルマネージャでサーバ側のディレクトリを操作

サーバの操作を行うにあたって頻繁に行うのがディレクトリ/ファイルの新規作成、移動、削除。そしてファイルがどこに置かれて、アクセス権などがどのようになっているかを調べたりする作業。

慣れないうち、というか、サーバ管理がメインではない人にとって、これらをコマンドで操作するのはキビしいものがあります。

一つ目はssh経由でサーバのファイルマネージャを操作する方法です。

Ubuntuのファイルマネージャの名称は「nautilus」、Linux Mint Cinnamonは「nemo」、Linuxu Mint Mateの場合「caja」と名称が違っていて紛らわしいですが、中身はおんなじ。

031CajaAccessServerSSH

「ファイル」>「サーバへ接続」を選びます。

caja_ssh

現れた画面で「サーバ名」にはIPアドレスを。

ポート番号は特にサーバ側で設定を変えていなければ「22」のままでOK。

「種類」でSSHを選択。「Folder」はアクセス時に初期に表示されるフォルダのディレクトリを指定。

「User Name」と「Password」は、サーバ側のIDとパスワードを入力。

「Remember this password」にチェックを入れておけばアクセス時に毎回入力する必要がありません。

「Add bookmark」にチェックを入れておけばファイルマネージャの左サイドにブックマークが追加され、次回以降アクセスが簡単に。

「Bookmark Name」にはブックマークの表示名を入れておきます。

「接続する」をクリックすると、、、

caja_ssh_connected

サーバ側のファイルマネージャが表示されディレクトリの管理が簡単に行えるようになります。


次に、sshでの「X転送」機能により、サーバにインストールされているアプリをクライアント側から起動し、GUIで操作する方法について見ていきます。

まずは、sshでのサーバへのアクセス方法の基本を

すでに、openssh-serverが稼働しているサーバに接続するには、「Menu」>「システムツール」>「端末」を起動させます。

「ssh」に続いて、サーバ側のユーザ名@サーバのIPアドレスを打ち込んでEnterします。

(例)ssh aiko@192.168.1.5

sshTerminal

続いてログインパスワードを聞かれるのでサーバのユーザのパスワードを入力します。

#初回アクセス時には、接続を続けるかどうかを聞かれると同時に、フィンガープリントと呼ばれるサーバの公開鍵の文字列が表示されます。

「yes」と入力し、Enterします。

ログインできたら、あらゆるコマンドでサーバの操作が行えます。

「-X」オプションで「X転送」

サーバにインストールされているアプリケーションをGUIで起動させるようにするには、「-X」オプションを付けてアクセスし、「X転送」を用います。

(例)ssh  -X aiko@192.168.1.5

ログイン後、アプリケーションの起動コマンドを叩けば、クライアント側にサーバ内のアプリが表示され、遠隔で操作ができます。

例えば、サーバがLinux Mint Mateの場合、ファイルマネージャの「caja」と叩けば、サーバのファイルマネージャが起動し、ファイル操作を行えます。

ssh_caja

管理者権限が必要なSynapticパッケージマネージャの場合、「gksudo synaptic」、または「sudo synaptic」とすれば、パスワードの入力を求められた上で、サーバ側のSynapticパッケージマネージャが起動します。

ssh_nautilus

これにより、どんなアプリがサーバに入っているかを確認したり、必要なパッケージを検索しながら追加したり、パッケージの管理をラクに行えます。

 #Ubuntu系では、この「X転送」があらかじめ有効になっています。もしもうまく行かない時には設定ファイルを確認します。

sudo nano /etc/ssh/sshd_config

X11Forwarding_yes

「X11Forwarding yes」があるか確認し、無ければ追記します。

*X転送で起動したアプリケーション内では日本語の入力ができません。
英文字のみとなります。「libreoffice –writer」としてサーバ側のWriterを起動させ、日本語での文書の参照はできますが、残念ながら、日本語の編集、入力はできません。


サーバにsshで接続できなくなった時には「鍵ファイル」をチェック

SShで初回アクセス時には、接続を続けるかどうかを聞かれて、サーバの公開鍵の文字列が表示されます。「yes」することで、アクセスをすると、クライアント側のホームディレクトリの隠しフォルダ(.=ピリオドで始まるフォルダ名のもの)「.ssh」内に「known_hosts」としてサーバの公開鍵が保存されたファイルが自動で生成されます。

known_hosts

万一サーバが改竄された時、この「鍵」が異なるものとなるため、接続できないようにし、これにより「成りすまし」を防げるようになっています。

OSを入れ替えたりした時には、サーバの公開鍵が変更となってしまうので、アクセスができなくなります。

そんな場合には、「known_hosts」ファイルをいったん削除してしまいます。

新たな接続を試みた時に再度認証を行う時に、再度新しい「known_hosts」ファイルが再生成されます。