CentOS7 の公開鍵認証でのSSHログイン

今回ははCentOS7 における、公開鍵認証でのTeraTerm ターミナルエミュレータによるSSH ログインを設定していきます。

まず、wheel グループに加えたユーザーのホームディレクトリで公開鍵を保存する隠しディレクトリ、.ssh を作成します。つづいてroot にスイッチしてパーミッションを一時的に777 に設定します。

$ mkdir .ssh
$ su (switch user してroot のパスワード入力
# chmod 777 .ssh

次に、TeraTerm のメニューバーの[設定]-[SSH鍵生成(N)…] から公開鍵と秘密鍵を[生成(G)] ボタンをクリックするとパスフレーズを求められるので入力、再入力をして生成します。

[公開鍵の保存] と[秘密鍵の保存] ボタンをクリックしてそれぞれ、id_rsa.pub, id_rsa という名前(デフォルト)でホストの適当なフォルダに保存します。

次にエクスプローラで、id_rsa.pub ファイルをホームディレクトリ上のTeraTerm 画面にドラッグ&ドロップすると以下の画面が表示されるので下図のように、SCP:[.ssh] と入力してファイル転送します。

再びターミナルに戻り、転送した公開鍵をauthorized_keys という名前に変更。(WinSCPなど複数の鍵を追加するときは、cat id_rsa.ppk >> authorized_keys など)鍵のパーミッションを600 に、.ssh ディレクトリのパーミションを700 に変更します。

# cd .ssh
# mv id_rsa.pub authorized_keys
# chmod 600 authorized_keys
# chmod 700 .

それから/etc/pam.d/sshd に以下の行を追記、

account    required     pam_nologin.so
account    required     pam_access.so (追記

デフォルトでは、/etc/security/access.conf を参照しますが、

account required  pam_access.so accessfile=/dir/to/ssh_access.conf

で指定したパスの.conf ファイルを指定することもできます。

一方、/etc/security/access.conf に +:wheel:ALL と、+:username:ALL と、– : ALL: ALL を追記。

# Disallow non-local logins to privileged accounts (group wheel). (の付近
#
#-:wheel:ALL EXCEPT LOCAL .win.tue.nl
+:wheel:ALL (追記
+:username:ALL(追記

# All other users should be denied to get access from all sources.
#- : ALL : ALL (その他のすべてのユーザーを拒否
- : ALL : ALL (wheel グループ以外をアクセス制限するには、- : ALL EXCEPT wheel : ALL

最後に/etc/ssh/sshd_config に公開鍵認証の設定をして

#ServerKeyBits 1024
ServerKeyBits 2048 (たぶん、必要

#PubkeyAuthentication no
PubkeyAuthentication yes (公開鍵認証をyes

#PasswordAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication no (パスワード認証をno

sshd 再起動、ログアウトします。

# systemctl restart sshd

TeraTerm の新しいショートカットのプロパティを以下の属性で作ると、1クリックで公開鍵認証でログインできると思います。

"C:\Program Files (x86)\teraterm\ttermpro.exe" localhost:22 /ssh2 /auth=publickey  /user=username /ask4passwd /keyfile="C:\pass/to/id_rsa"

ログインできない場合、原因はいろいろあると思いますがfirewalld でのポート開放(SSHのポート番号の変更をしたとき。)、鍵やディレクトリの所有権、SeLinux のコンテキストの確認、PAM の書式(設定ファイルの行の前後位置)、ローカル、リモートでのアクセス制限、IPの設定はどうなっているなどを確認してみて下さい。

参考URL:http://qiita.com/tjinjin/items/ca6f5518e881bdf5488c

ターミナルエミュレータにConsolasフォントを入れる

きっかけは、/tmpディレクトリに謎のvirtual-userディレクトリが大量に作られるというバグ。こちらのサイトに

増え続ける謎のディレクトリ | Ari’s Blog

/etc/rc.d/rc.sysinitの #Clean up various /tmp bitsの項目の最下行に/tmp/virtual-*を追加しよとあるので追加しようと試みましましたが、半角バックスラッシュが入力できませんでした。

・・・\
/tmp/virtual-*

Google先生に聞いてみるとConsolasフォントをインストールしてレジストリからFontLink機能をConsolasに追加、

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

を開いて、ConsolasのREG_MULTI_SZに

MEIRYOKECONSOLE.TTF
MSGOTHIC.TTC,MS UI Gothic

TERATERM.INIのVTFontを再設定すると幸せになれるらしいです。

;VTFont=Terminal,0,-19,128(コメントアウト)
VTFont=Consolas,0,-19,128

ちなみにWordpress上で表示させたいときは、欧文フォントを指定してあげます。

<span style="font-family: Arial;">\</span>

参考URL http://tm.root-n.com/misc:consolas

http://d.hatena.ne.jp/ShiroKappa+_tech/20120303/1330727092

http://www.accacom.jp/blog/wordpress/170

RTX810 コンソール接続

RTX810をコンソール(RS-232c)接続してみました。今どきのPCにはシリアルポートがありませんので、Amazon.co.jp 等でUSB変換ケーブル(ELECOM USBtoシリアルケーブル USBオス-RS-232C用 UC-SGT1)を入手して9pinのクロス(両端メス)延長ケーブルで繋いでいます。

devicemanager

COMポート番号は、「3」 でした。右クリックからプロパティを表示して以下の設定にします。

ビット/秒:9600
データビット:8
パリティ:なし
ストップビット:1
フロー制御:Xon/Xoff

serial_propaty

こちらのページを参考にしてポート番号の所を読み替えてTeraTermのマクロファイルをRTX810.ttlとして保存します。

TeraTermのショートカットのプロパティを以下に設定して完了です。

"C:\Program Files (x86)\teraterm\ttpmacro.exe" "/V" "C:\Program Files (x86)\teraterm\RTX810.ttl"

ショートカットをダブルクリックするとコンソールウィンドウが表示されますのでユーザー名、パスワードを入力すると無事ログインできました。

console_

管理者としてログインするには、

>administrator
Password:[パスワード]

です。文字セットは文字化けしないように設定から「SJIS」にしましょう。

TeraTermカスタムショートカット

毎回、SSH接続するときにユーザー名を入力する手間に辟易していたところ、TeraTermの便利なショートカットカスタム方法がヒットしたのでシェアしますね。

Tera TermでSSH接続する際に、自動ログインするショートカットを作成 – サラリーマンから起業するリアル

ショートカットのプロパティを開いて、リンク先を下記のように設定します。

"C:¥Program Files¥teraterm¥ttermpro.exe"  対象サーバ:22  /ssh2  /auth=publickey /user=ログインユーザ名 /ask4passwd /keyfile="証書ファイルの絶対パス"

property_teraterm

 

VirtualBoxのホストもカスタムショートカットを作ればデスクトップからダブルクリックひとつでログインできて便利ですね。