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 passphraseEnter 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にはないメリットもたくさんあるみたいなので、勉強していきたいと思います。

You may also like

Leave a comment