ラベル SSH の投稿を表示しています。 すべての投稿を表示
ラベル SSH の投稿を表示しています。 すべての投稿を表示

2012年3月8日木曜日

CentOS6.2 鍵認証によるSSHログイン

鍵認証によるSSHログインを設定する。

公開キーと秘密キーを生成


自分はTera Term Proをよく使用するので、Tera Term Proで公開キーと秘密キーを生成。
Tera Term のメニューバーより[設定]-[SSHキー生成]、今回はDSAを使用する。
キーのパスフレーズとパスフレーズに任意のパスワードを入力し、[公開鍵の保存]と[秘密鍵の保存]ボタンを押して、それぞれ任意の場所に保存する


サーバへ公開鍵を設定


ログインするユーザフォルダ直下に.sshフォルダを作成し、ディレクトリのアクセス権を設定。
mkdir -p /home/[user]/.ssh/
chmod 700 .ssh/
chmod go-w /home/[user] /home/[user]/.ssh


公開鍵をサーバへ転送する、転送は Tera Term の場合 ターミナル画面へドラッグ&ドロップすると、SCP転送ができる。この時に出るポップアップメニューでは「SCP」を選択する。「ファイル転送」を選んでしまうと、ファイルの内容がターミナルに送信されてしまう。


送信したファイルは、最初にログインしたユーザのホームディレクトリ(/home/[user]/)に送信される。FTPで送信してもいいが、SCPの方が安全である。

公開鍵を.ssh/authorized_keys に移動(リネーム)、パーミッションを600に設定。
mv id_dsa.pub /home/[user]/.ssh/authorized_keys
chmod 600 authorized_keys


※所有者が異なる場合は権限をログインするユーザとする
chown [user] authorized_keys
chown [user] .ssh/


※chmodのパラメータ

//ユーザー表記
u 所有者
g グループ
o その他
a 全て

//権限指定
+ 後述権限の付加
- 後述権限を削除
= 後述権限に変更

//権限表記
r 読みだし権限
w 書き込み権限
x 実行可能権限
s セットID
t スティッキー・ビット

//文字 数値 内容
r 4 読みだし可
w 2 書き込み可
x 1 実行可能
※上記数値の組み合わせ(加算)により設定



sshd_configの編集
vi /etc/ssh/sshd_config

//パスワードでの認証を禁止
#PasswordAuthentication yes
PasswordAuthentication no

//公開鍵認証を許可(ssh2のみ)
#PubkeyAuthentication yes
PubkeyAuthentication yes

//authorized_keysの場所(user配下の.sshフォルダ)
#AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys


sshをリロード、設定を反映させる
/etc/rc.d/init.d/sshd restart




秘密鍵でログイン



Tera Term Pro で接続する、
鍵を作成したときのパスフレーズを入力、作成した秘密鍵を設定し接続。



鍵認証によりログインができた。
Last login: Thu Mar  8 23:14:22 2012 from 192.100.xxx.xxx
[user@xs35v2 ~]$

2012年3月5日月曜日

CentOS rootでの直接ログインを禁止

いろいろと勉強したことが多くて、なかなか自宅サーバの移行が進まないが、少しずつでも片付けておきたい。

とりあえずSSHで接続する際に、rootのログインを禁止する設定を行う。rootでのログインは、一般ユーザでログインしてからrootに切り替える。直接rootでログインするのはセキュリティ上よろしくない。

まずは一般ユーザの追加から行う。
# useradd [username]


作成したユーザにパスワードを設定する。
# passwd [username]


ユーザの追加ができたら、一度ログアウトして、ログインできるか確認しておく。
また、rootになれるかも確認しておく。
$ su - root
パスワード:



上記確認ができてから、rootでのログインを禁止する。設定はrootで行う。
sshd_config内の PermitRootLogin のコメント(#)を外し、'PermitRootLogin no'にする
[root@xs35v2 ~]# vi /etc/ssh/sshd_config

#PermitRootLogin yes
PermitRootLogin no


sshdをリロードして、設定の反映をする。
[root@xs35v2 ~]# /etc/rc.d/init.d/sshd reload
sshd を再読み込み中: [ OK ]


これで、rootでの直接ログインはできなくなる。

2011年12月13日火曜日

Android端末でSSH転送を利用したTeamViererでのリモート接続

先日に引き続き今度は,Android端末でSSH転送を利用したTeamViererでのリモート接続を行う。
まずは ConnectBot アプリでSSH接続し、SSHポート転送の設定を行う。ポートは 5938 と 80 を設定します。転送先は「接続先PCのIP:ポート番号」の書式で入力。





SSH転送の設定を行い接続が完了したら、TeamViererをそれぞれの端末で起動します。このとき、接続先PCはLAN接続にします。メニューバーより[その他] - [オプション] - [全般] の「ローカルネットワークでの接続(IPアドレス使用)」で「受信LAN接続」を「同意のみ」にする。

あとはAndroid端末よりローカルへの接続を行うのだが、なぜかアルファベットや一部の記号を入力できないモードになるため、テキストエディタに一時記入し、コピーペーストで "127.0.0.1" をテキストボックスに入れ、パスワードを入力。



これだけで接続は完了、至って簡単でした。(接続先PCは Windows7 Professional 64bit )

2011年12月12日月曜日

SSH転送を利用したTeamViererでのリモート接続

TeamViererはルータ越えをした、パソコンの遠隔操作やサポートを行うことができる有名なソフト、商用でなければ無料で利用することができる。クライアント側でのインストールも不要で、IDとPWだけでインターネット経由の接続が可能となる。

接続の際は、TeamVierer専用サーバ経由での接続となるのだが、今回はSSHサーバでトンネリングを行い、TeamVierer専用サーバを経由しないで接続実験をしてみた。
接続先が無人の場合は、別にWOLの設定と固定パスワード、起動時の常駐設定(インストール)が必要となる。


まずSSHサーバにログインし、ポートフォワードを設定する。TeraTermでは [設定] - [SSH転送] で Port 80 と 5938 を転送設定する。




接続先のPCでは、メニューバーより[その他] - [オプション] - [全般] の「ローカルネットワークでの接続(IPアドレス使用)」で「受信LAN接続」を「同意のみ」にし、設定をLANでの接続方法に変更する。
受信LAN接続については、接続先PCのみでよい。理由は接続元端末も設定してしまうと、Port番号が重なるからだ。このソフトはサードとクライアントの位置づけがない、そのため Portは意図的に切り分ける必要があるのだ。




上記設定ができたら接続元端末より、TeamViererを起動し、接続先を localhost または 127.0.0.1 で接続。パスワードの入力画面で接続先で設定(固定パスワードを設定してない場合はランダムPW)したパスワードを入力したら接続できるようになる。