Ubuntu 13.10 公開鍵認証設定

Ubuntu 13.10 公開鍵認証設定

今回はSSH2での設定

まず普通にリモートログインをパスワード認証でログイン

ログインできたらログアウト

次に
クライアントマシンのほうで
ssh-keygen -t rsa -f ~/.ssh/id_rsa_ubu
で鍵作成

このときパスワードきかれるけどお試しなら
パスワードなし

次に、鍵をコピー
scp .ssh/id_rsa_ubu.pub 192.168.10.206:.
というように
scp .ssh/id_rsa_ubu.pub ユーザ名@IPアドレス:.

でコピー

コピーするときに ,pub 拡張子のついていることを確認すること

そして ssh のパスワード認証でログインしてサーバーで作業する

まず必要な準備
mkdir ~/.ssh
chmod 700 .ssh
でディレクトリ作成と権限設定

次に鍵の名前変更と移動
mv id_rsa_ubu.pub .ssh/authorized_keys

権限を変えるので
chmod 400 .ssh/authorized_keys

そして設定ファイルを変更するので
まず
sudo apt-get install vim
で vim を入れて

sudo vim /etc/ssh/sshd_config
でファイルを開く

vim は癖があるけど操作になれるといろいろできる

変更するのは
PasswordAuthentication yes

PasswordAuthentication no

#AuthorizedKeysFile %h/.ssh/authorized_keys

AuthorizedKeysFile %h/.ssh/authorized_keys
というように最初のコメントアウトを消すこと

PubkeyAuthentication yes
になっていることを確認して
あとは
:wq
で保存

設定反映のため
sudo service ssh restart
でSSHの再起動

ここまでできたら、ログアウトせずに
新しい端末とか wifi でつなげた ipod とかAndroid で接続テスト

ssh -o PubkeyAuthentication=no IPアドレス
とすればログインできないのが確認できる

かなり長めなオプションだけど tab で補完できるので
じつは楽だったりする

このオプションは公開鍵認証の無効化

で、ログインした状態を保っておくのは
設定失敗して、公開鍵もログインできない状況だと
サーバー本体で操作することになるから

あと、今回は最初のパスワードを省いたけど
本当はセキュリティを考慮するなら設定する

日経 Linux の巻末のマンガにも載っていたけど
パスワードなしを使うのは運用で
ログのみ閲覧可能とかの限定権限にしておくこと

公開鍵認証ではまった事

公開鍵認証ではまった事
CentOS 6.4 64bit で
公開鍵認証でアクセスするように変更して躓き
解決したのでメモです
クライアントマシンは
Ubuntu 12.04 LTS 64bit
まず、Ubuntu で
Ctrl + Alt + t
で端末を開き
ssh-keygen -t rsa
で鍵を作成
パスワードを聞かれるので、任意のパスワードを入力
ssh-copy-id コマンドで転送できるので
ssh-copy-id ‘-p2222 snowpool@192.168.10.110’
で転送
書式解説すると
-p2222 は変更したポート番号
あとは
ユーザ名@IPアドレス
となっています
ポートを変更していないのなら
ssh-copy-id ユーザ名@IPアドレス
でOKです
その後
ssh-add ~/.ssh/id_rsa
を実行して
あとは
ssh -p 2222 192.168.10.110
でログインできるようになります
もし
ssh-add ~/.ssh/id_rsa
を忘れると
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
と表示されログインできません
このエラーがでることによりかなり悩みました
sshの公開鍵認証の設定でつまずいた
http://daily.belltail.jp/?p=112
を参考にすることで、無事解決しました
ポート変更後の
ssh-copy-id コマンドについては
How to use ssh-copy-id on a non-standard port
http://superuser.com/questions/446665/how-to-use-ssh-copy-id-on-a-non-standard-port
を参考にさせていただきました

ssh の鍵ファイルのパーミッション

AWSの鍵をコピーして新しいマシンで動かそうとしたら
It is required that your private key files are NOT accessible by others.This private key will be ignored.
とエラーがでて接続拒否されました
このため、エラーメッセージから検索して
MacでSSH公開鍵・秘密鍵ファイルをコピーして使ったら警告がでた
を参考に
chmod 0600 ~/.ssh/鍵ファイル名
で権限変更することで、無事に接続できるようになりました

パスフレーズなしのSSH

今回、Haddop の実験を行うにあたって
パスフレーズなしのSSH接続が必要になるので、
これについて勉強してみました
日経 Linux 2011-05 には
ssh-keygen -t dsa
を実行し、パスフレーズを空白のまま Enter となっていました
ほかにも参考になるものを探していて
Hadoopインストール手順(0.20.1)

# sshの鍵作る
$ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
が気になったので調べてみました
オプションなどに関しては
ssh-keygen で検索し
SSH-KEYGEN (1)
を参考に調べました
-t は鍵の種類を指定します
通常なら RSA鍵ですが、Hadoop では DSA 鍵を使うため
このオプションを使用
-P はパスフレーズを記述します
今回は ” となっているので、空白を意味するようです
-f で鍵を格納するファイルを指定します
-f ~/.ssh/id_dsa
なので
~/.ssh/id_dsa
に鍵を格納するということになります

ubuntu 10.10 へ公開鍵認証(X転送)

公開鍵認証、ポート変更、ユーザの限定
そしてパスワードログインの禁止まで
行いました
今回は、X転送の機能を実験してみました
sudo vi /etc/ssh/ssh_config

設定ファイルを開き、
X11Forwarding yes
というように設定します
次に、ログインするときに
-X
オプションを追加してログインします
例を書くと
ssh -X -p 2222 wiki@192.168.10.205
となります
このときの画面は、いつもの端末画面ですが
ここで
firefox&
とすると、クライアントの画面で
firefox を立ち上げることができます
ほかにも
nautilus&
とすれば、
ファイルマネージャーを起動できます
ただし、意図していたようなVNC接続のようにはなりませんでした

ubuntu 10.10 へ公開鍵認証(セキュリティ強化)

前回、SSHでの接続を、通常のパスワード認証から
公開鍵認証へと変更しました
これにより、ログインパスワードではなく
鍵のパスフレーズでログインします
しかし、これではまだパスワードが流れているので、
次にパスワードを使わないようにします
sudo vi /etc/ssh/sshd_config
でファイルを開き
#PasswordAuthentication yes

PasswordAuthentication no
とすることで、パスワードを使えなくします
また、ウェルノウンポートでは、SSH 接続のポートが
分かっているので、ポートを変更することで
接続しにくくします
ポートの変更をするには
Port 22
の部分を
任意の数値に変えます
例えば、Port 2222 にするなら
#Port 22
Port 2222
とします
自由に設定できるポート(32768 ~ 61000)から適当に選べます
SSHポートを変更した場合、以後の接続には
ポートを指定してログインします
いままでは
ssh wiki@192.168.10.205
でいけましたが
今度からは
ssh -p 2222 wiki@192.168.10.205
というように、
-p のあとに設定したポート番号を入れないと入れません
さらにセキュリティを強化するために
ログイン可能なユーザを限定します
AllowUsers wiki
これは、
AllowUsers ユーザ名
となります
複数いるのならば
AllowUsers wiki snow windows
というように複数記述することもできます
設定ファイルを書き換えたら、SSHの再起動をします
sudo /etc/init.d/ssh restart
今回は、基本的なSSH Serverの設定
を参考にさせていただきました

ubuntu 10.10 へ公開鍵認証でログイン

ubuntu 10.10 32bit へ公開鍵認証でログインできるようにしてみました
まず、クライアントとして
fedora もしくは ubuntu を使います
SSHでログインできるように、ubuntu へ
sudo apt-get install openssh-server

SSHログインを可能にします
これで、まずは、SSHのログイン、scp などが使えるようになります
続いて、接続する fedora もしくは ubuntu を使います
参考書籍はubuntu magagine 05
最初に
ssh-keygen

ファイルをつくるか聞かれるので
Enterキーを押す
次に
パスフレーズを入力
確認のため、もう一回いれるように指示されるので
再度同じパスフレーズを入力
デフォルトだと、$HOME/.ssh
に鍵ができているので
cd $HOME/.ssh
で移動
次に、scpコマンドを使い、
接続するクライアントからubuntu へ鍵をコピー
scp id_rsa.pub wiki@192.168.10.205:/home/wiki/.ssh

.ssh ディレクトリにコピー
ここまですんだら、次に ubuntu へログインします
ssh wiki@192.168.10.205
でログインパスワードを入力しログイン
次に、サーバー側の設定を変更
まずは、公開鍵をauthorized_keys へ登録
(もしなくても、以下のコマンドを実行すれば自動で作成されます)
cat id_rsa.pub >> authorized_keys
適切なパーミッションになっていないと、鍵認証が有効にならないので
chmod 600 authorized_keys
で権限変更
なお、パーミッションの確認は
ls -lF
で確認できます
(参考サイトはファイルのアクセス権限(パーミッションについて)
これで、次にログインしようとすると、公開鍵認証のフレーズを入力されるようになります
ちなみに、鍵の登録を簡略化することもできます
使用するのは
ssh-copy-id
です
ssh-copy-id -i ~/.ssh/id_rsa.pub wikil@192.168.10.205
とすれば、簡単に鍵を登録できます
構文は
ssh-copy-id -i 鍵の場所 ユーザ名@サーバーIPアドレス
となります
一度、ログインに成功すると、その後は
キャッシュにデータが保存されるようです

ssh と複数ログインの情報収集

最近のハードウェアの進歩と仮想化技術の進歩により
自宅でも練習用環境を作成することが容易になりました
最近はVMware で複数のサーバーを作ったりできるのですが
毎度ターミナルを立ち上げて設定するのは面倒になってきました
そこで、現在、SSHで複数のサーバーへアクセスする方法がないかという
ことを検索しています
検索キーワードを
SSH 複数ログイン、もしくは SSH 踏み台とすると
かなりの数がヒットします
現在のスキルではまだできないこともありますが、いずれ簡単にできるように
なってみる予定です

SSH 接続のポート変更とアクセス

通常、Linux では、SSh接続に22番ポートを使用しています
しかし、セキュリティ上、このままの状態はおすすめできません
なぜなら、ウェルノウンポートのままの場合、簡単に
アクセスされやすくなります
また、root 権限を奪取すべく、rootログインを試みるということも多々あります
対策としては
root ログイン禁止
公開鍵認証にして、パスワードによるアクセスの禁止
SSHポートの変更
というものがあります
今回は、SSHアクセスに使うポートの変更
ということで設定します
参考にしたサイトは
SSH の待ち受けポート番号を変更するです
vi /etc/ssh/sshd_config
で設定ファイルを開き
#Port 22
となっている下のところに変更するポート番号を書き込みます
例えば、2222 ポートなら
Port 2222
とします
その後
service sshd restart
でSSHを再起動することで反映されます
ただし、この設定を行うと、以降は SSH 接続する時に
ポートの指定が必要になります
端末からアクセスするには
ssh -p ポート番号 ユーザ名@IPアドレス
となります
例を書くと
ssh -p 2222 testuser@192.168.1.100
というようになります
同様に、scp コマンドもポートの指定が必要になります
scp -P ポート番号 ファイル名 ユーザ名@IPアドレス:転送先ディレクトリ
となります
例を書くと
scp -P 2222 testfile testuser@192.168.1.100:/home/testuser/
というかんじです
オプションをつけるときには、Pが大文字であることに注意してください
参考サイトはSCP (1)
です