SSHの設定・ログイン

  • 投稿日:
  • by ライブラリ編集局

この記事では、linuxのSSHを設定し、リモートからサーバーにログイン(パスワード認証方式,秘密鍵認証方式)を行う方法を説明します。尚、OSについてはCentOS6(64bit)を対象としています。また、外部から接続する場合は、ファイアーウォールの設定で22番ポートを通してください。


パスワード認証方式によるログイン

ユーザー名とパスワードを使って認証を行います。

sshd_configの設定変更

#vi /etc/ssh/sshd_config

コメント解除します

パスワードでのログイン許可
#PasswordAuthentication yes  →  PasswordAuthentication yes
パスワードなしでのログイン禁止
#PermitEmptyPasswords no     →  PermitEmptyPasswords no

SSH再起動

# /etc/rc.d/init.d/sshd restart

パスワード認証ログイン

クライアント側でSSH接続できるソフトを用意します。ここではTeraTermを用います。 ファイルタブの新しい接続を押し、ホストにIPアドレスを入力します。→OK teraterm.jpg

linux上のアカウントのユーザー名とパスワードを入力します。→OK teraterm2.jpg

以上でパスワード認証ログインの完了です。


秘密鍵認証方式によるログイン

公開鍵と秘密鍵を使って認証を行います。

sshd_configの設定変更

#vi /etc/ssh/sshd_config

パスワードでのログイン禁止
#PasswordAuthentication yes  →  PasswordAuthentication no
パスワードなしでのログイン禁止
#PermitEmptyPasswords no     →  PermitEmptyPasswords no

SSH再起動

# /etc/rc.d/init.d/sshd restart

SSH2の鍵作成

鍵を作成したいユーザーになります。

ユーザーを変更

#su - denet

※補足

新規ユーザーの作成
#adduser ○○

ログアウトするには以下のコマンド
$exit

SSH2による鍵を作成

$ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/denet/.ssh/id_rsa):
何も入力せずにEnterキーを押す
Created directory '/home/denet/.ssh'.
Enter passphrase (empty for no passphrase):
パスフレーズ入力
Enter same passphrase again:
パスフレーズ再入力

公開鍵をauthorized_keysに追加

$cat /home/denet/.ssh/id_rsa.pub >> /home/denet/.ssh/authorized_keys

公開鍵を自分のみアクセスできるように変更

$chmod 600 /home/denet/.ssh/authorized_keys

公開鍵の削除

$rm -f /home/denet/.ssh/id_rsa.pub

鍵の作成先の表示

$ls -la /home/denet/.ssh/
合計 16
drwx------ 2 denet denet 4096  6月 13 11:05 2014 .
drwx------ 3 denet denet 4096  6月 10 10:16 2014 ..
-rw------- 1 denet denet  804  6月 13 11:04 2014 authorized_keys 公開鍵
-rw------- 1 denet denet 1743  6月 13 11:04 2014 id_rsa          秘密鍵

WinSCPで秘密鍵をクライアントへ移行

秘密鍵をこのままおいておくと危険なので、別の場所に移行します。クライアント側で必要になるので、SSHで接続するクライアントに移行しておきます。ここではWinSCPを用いますのでGUIでの操作になります。

WinSCPを起動してファイルプロトコルをSFTPに設定し、ホスト名・ユーザ名・パスワードを入力します。 winscp login.jpg

ログインすると以下のような画面が出ます。 左側がクライアントで、右側が接続しているリモートホストです。リモートホストで/home/denet(ユーザ名)/.ssh/id_rsaをクライアント側へ移します。リモートホスト側の秘密鍵は削除しておきます。 winscp true.jpg

SSH再起動

# /etc/rc.d/init.d/sshd restart

秘密鍵認証ログイン

クライアント側でSSH接続できるソフトを用意します。ここではTeraTermを用います。 ファイルタブの新しい接続を押し、ホストにIPアドレスを入力します。→OK

linux上のアカウントのユーザー名とパスワードを入力します。 RSA/DSA/ECDSA鍵を使うにチェックを入れて秘密鍵を指定します。 sercret key login.jpg OKを押します。

以上で秘密鍵認証ログインの完了です。