linuxBeanを遠隔操作するまでの設定。(SSH編)
こんにちは!
サイト管理人のYosukeです。
先日、LinuxBeanインストールしたノートパソコンにVNCサーバーを入れて、
遠隔操作する事が出来るようになりました。
目次
遠隔操作の種類(おさらい)
今回は、コマンドラインから遠隔操作出来るようにと、SSHサーバーの設定を進めていきます。
リモートデスクトップ接続を利用するデスクトップ画面操作型(済!)- Telnetや、SSH接続を利用するコマンドライン操作型
Telnet接続は、通信内容が暗号化されない仕様の為、ネットワーク上で利用する事は、
一時的な利用を除き、あまり好ましくないので、SSHだけ設定していきます。
SSHサーバー openssh-server
インストール
Synaptic パッケージマネージャ から、openssh-server を検索してインストール。
(またはapt-getでインストール)
秘密鍵・公開鍵をつくる ssh-keygen
端末(ターミナル)を起動して、ssh-keygen というコマンドを入力すると、
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/yosuke/.ssh/id_rsa): [Enterキー] Created directory '/home/yosuke/.ssh'. Enter passphrase (empty for no passphrase): [Enterキー] Enter same passphrase again: [Enterキー] Your identification has been saved in /home/yosuke/.ssh/id_rsa. (秘密鍵ファイル) Your public key has been saved in /home/yosuke/.ssh/id_rsa.pub. (公開鍵ファイル) The key fingerprint is: **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** yosuke@yosuke-X61s The key's randomart image is: +--[ RSA 2048]----+ ~省略~ +-----------------+ yosuke@yosuke-X61s:~$
上の用に進めることが出来ます。
Enter passphrase / Enter same passphrase again: は、
入力しても構いませんが、SSH接続する際にその都度パスワードの入力が必要になります。
- id_rsa は、秘密鍵… 鍵みたいなもの。クライアントが使用するもの。
- id_rsa.pub は、公開鍵… 鍵穴みたいなものです。サーバーに置いておくもの。
どちらも、単なるファイルなので複製したり削除出来ますが、
公開鍵をなくしたり盗まれたりすると、悪用される危険性が高まるので、
大事に取り扱います。(何度も作りなおす事が出来ます)
id_rsa.pub は、USBフラッシュメモリなどで、クライアント側パソコンに移動します。
SSHサーバーの設定 sshd_config
ファイルマネージャで、/etc/ssh を開き、管理者権限で開き直してから、
sshd_config ファイルを開きます。
PermitRootLogin yes
を、SSH からの直接 root ログインを禁止する為に、
PermitRootLogin no
no に変更。
#AuthorizedKeysFile %h/.ssh/authorized_keys
を、先ほど作成した公開鍵からのログインを有効にする為に、
AuthorizedKeysFile %h/.ssh/id_rsa.pub
コメントアウトして、id_rsa.pub に変更。
(コメントアウトは、頭文字の#を消去すること。ここでは#が入っている部分はデフォルトの設定が適用されます)
#PasswordAuthentication yes
を、パスワードを使ったログインを無効にする為に、
PasswordAuthentication no
コメントアウトして、no に変更。
これで、root権限でログインさせず、鍵使用のみの認証でログインする設定の出来上がり。
sshd_config 変更前、変更後の比較
# Package generated configuration file # See the sshd_config(5) manpage for details # What ports, IPs and protocols we listen for Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 Protocol 2 # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key #Privilege Separation is turned on for security UsePrivilegeSeparation yes # Lifetime and size of ephemeral version 1 server key KeyRegenerationInterval 3600 ServerKeyBits 768 # Logging SyslogFacility AUTH LogLevel INFO # Authentication: LoginGraceTime 120 PermitRootLogin yes StrictModes yes RSAAuthentication yes PubkeyAuthentication yes #AuthorizedKeysFile %h/.ssh/authorized_keys # Don't read the user's ~/.rhosts and ~/.shosts files IgnoreRhosts yes # For this to work you will also need host keys in /etc/ssh_known_hosts RhostsRSAAuthentication no # similar for protocol version 2 HostbasedAuthentication no # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication #IgnoreUserKnownHosts yes # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords PasswordAuthentication yes # Kerberos options #KerberosAuthentication no #KerberosGetAFSToken no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes X11Forwarding yes X11DisplayOffset 10 PrintMotd no PrintLastLog yes TCPKeepAlive yes #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net # Allow client to pass locale environment variables AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes
# Package generated configuration file # See the sshd_config(5) manpage for details # What ports, IPs and protocols we listen for Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 Protocol 2 # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key #Privilege Separation is turned on for security UsePrivilegeSeparation yes # Lifetime and size of ephemeral version 1 server key KeyRegenerationInterval 3600 ServerKeyBits 768 # Logging SyslogFacility AUTH LogLevel INFO # Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/id_rsa.pub # Don't read the user's ~/.rhosts and ~/.shosts files IgnoreRhosts yes # For this to work you will also need host keys in /etc/ssh_known_hosts RhostsRSAAuthentication no # similar for protocol version 2 HostbasedAuthentication no # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication #IgnoreUserKnownHosts yes # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords PasswordAuthentication no # Kerberos options #KerberosAuthentication no #KerberosGetAFSToken no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes X11Forwarding yes X11DisplayOffset 10 PrintMotd no PrintLastLog yes TCPKeepAlive yes #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net # Allow client to pass locale environment variables AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes
もちろん、最後にファイアウォールの設定も忘れずにね。
再起動と接続チェック
変更を適用するために、
$ sudo /etc/init.d/ssh restart
でsshサーバーを再起動します。
SSH接続には、Tera Term Pro をはじめとするいろんなソフトウェアがありますが、
自分はCygwinを使っているので、その場合だと、
ssh -i ~/.ssh/LBX61s/id_rsa.pub -p 22 192.168.12.55
の感じで、公開鍵を読み込ませて、無事接続する事が出来ました。
(最後の最後にザーッとしててすいません…)
やってみて思ったこと
前回のUltraVNCで接続出来るようになれば、クリップボードも共有出来るし、
わざわざSSHで接続する必要なんてないかも。。なんて。
コマンドライン操作なりの、VNCにはないメリットもたくさんあるみたいなので、勉強していきたいと思います。