ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: セキュリティーサービス Oracle Solaris 11.1 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法
Secure Shell の公開鍵のパスフレーズを変更する方法
Secure Shell を使用してリモートホストにログインする方法
Secure Shell でのパスワードのプロンプトを減らす方法
Secure Shell を使用して ZFS をリモートで管理する方法
Secure Shell を使用してファイルをコピーする方法
ファイアウォール外部のホストへのデフォルトの Secure Shell 接続を設定する方法
22. Kerberos エラーメッセージとトラブルシューティング
Secure Shell は、インストール時に構成されます。デフォルトを変更するには、管理者の介入が必要です。次のタスクは、デフォルトの一部を変更する方法を示しています。
次のタスクマップでは、Secure Shell の構成手順を示します。
|
次の手順によって公開鍵システムが設定され、クライアントの公開鍵がサーバー上での認証に使用できるようになります。また、ユーザーは、公開鍵と非公開鍵のペアを作成する必要があります。
この手順での「クライアント」および「ローカルホスト」という用語は、ユーザーが ssh コマンドを入力するマシンを指しています。「サーバー」および「リモートホスト」という用語は、クライアントがアクセスを試みるマシンを指しています。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
クライアントの構成ファイル /etc/ssh/ssh_config で、次のエントリを入力します。
HostbasedAuthentication yes
このファイルの構文については、ssh_config(4) のマニュアルページを参照してください。
サーバーの構成ファイル /etc/ssh/ssh_config で、同じエントリを入力します。
HostbasedAuthentication yes
このファイルの構文については、sshd_config(4) のマニュアルページを参照してください。
詳細については、sshd(1M) のマニュアルページの「FILES」のセクションを参照してください。
client-host
client-host
/etc/ssh/sshd_config ファイルで、IgnoreRhosts を no に設定します。
## sshd_config IgnoreRhosts no
## sshd_config IgnoreUserKnownHosts no
ユーザーへの指示については、「Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法」を参照してください。
ホスト鍵は、/etc/ssh ディレクトリに格納されます。鍵は、通常、最初のブート時に sshd デーモンによって生成されます。
クライアントで、バックスラッシュなしで 1 行に次のコマンドを入力します。
# cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \ 'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"'
ファイルがコピーされると、「Host key copied」というメッセージが表示されます。
/etc/ssh/ssh_known_hosts ファイルの各行は、スペースで区切られたフィールドで構成されています。
hostnames algorithm-name publickey comment
## /etc/ssh/ssh_known_hosts File RemoteHost <copied entry>
例 15-1 ホストに基づく認証を設定する
次の例では、各ホストがサーバーおよびクライアントとして構成されます。一方のホストのユーザーが、他方のホストへの ssh 接続を開始できます。次の構成によって、各ホストがサーバーおよびクライアントになります。
ホストごとに、 Secure Shell 構成ファイルに次のエントリを入力します。
## /etc/ssh/ssh_config HostBasedAuthentication yes # ## /etc/ssh/sshd_config HostBasedAuthentication yes IgnoreRhosts no
ホストごとに、shosts.equiv ファイルに他方のホストに対するエントリを入力します。
## /etc/ssh/shosts.equiv on machine2 machine1
## /etc/ssh/shosts.equiv on machine1 machine2
各ホストの公開鍵を、他方のホストの /etc/ssh/ssh_known_hosts ファイルに入力します。
## /etc/ssh/ssh_known_hosts on machine2 … machine1
## /etc/ssh/ssh_known_hosts on machine1 … machine2
ユーザーは、両方のホストにアカウントを持ちます。
## /etc/passwd on machine1 jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh
## /etc/passwd on machine2 jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh
ポート転送によって、ローカルポートをリモートホストに転送することができるようになります。指定すると、ソケットはローカル側で、そのポートを待機します。また、リモート側のポートを指定することもできます。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
/etc/ssh/sshd_config ファイルで AllowTcpForwarding の値を yes に変更します。
# Port forwarding AllowTcpForwarding yes
remoteHost# svcadm restart network/ssh:default
永続的なサービスの管理については、『Oracle Solaris 11.1 でのサービスと障害の管理』の第 1 章「サービスの管理 (概要)」および svcadm(1M) のマニュアルページを参照してください。
remoteHost# /usr/bin/pgrep -lf sshd 1296 ssh -L 2001:remoteHost:23 remoteHost
この手順では、条件付きの Match ブロックを /etc/ssh/sshd_config ファイルのグローバルセクションのあとに追加します。Match ブロックのあとに続くキーワードと値のペアは、一致するものとして指定されたユーザー、グループ、ホスト、またはアドレスの例外を示しています。
始める前に
solaris.admin.edit/etc/ssh/sshd_config 承認が割り当てられている管理者になる必要があります。デフォルトでは、root 役割がこの承認を持っています。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
それらの Match ブロックをグローバル設定のあとに配置します。
注 - このファイルのグローバルセクションには、デフォルト設定が一覧表示される場合もされない場合もあります。それらのデフォルトについては、sshd_config(4) のマニュアルページを参照してください。
TCP 転送の使用を許可すべきでないユーザーが含まれている場合があります。次の例では、グループ public のユーザーと、test で始まるユーザー名はすべて TCP 転送を使用できません。
## sshd_config file ## Global settings # Example (reflects default settings): # # Host * # ForwardAgent no # ForwardX11 no # PubkeyAuthentication yes # PasswordAuthentication yes # FallBackToRsh no # UseRsh no # BatchMode no # CheckHostIP yes # StrictHostKeyChecking ask # EscapeChar ~ Match Group public AllowTcpForwarding no Match User test* AllowTcpForwarding no
Match ブロックの構文については、sshd_config(4) のマニュアルページを参照してください。
この手順では、sftp 転送専用に作成された sftponly ディレクトリを構成します。ユーザーは、この転送ディレクトリの外部のどのファイルまたはディレクトリも表示できません。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
# groupadd sftp # useradd -m -G sftp -s /bin/false sftponly # chown root:root /export/home/sftponly # mkdir /export/home/sftponly/WWW # chown sftponly:staff /export/home/sftponly/WWW
この構成で、/export/home/sftonly は、root アカウントのみがアクセスできる chroot ディレクトリです。ユーザーには、sftponly/WWW サブディレクトリへの書き込み権があります。
/etc/ssh/sshd_config ファイル内で sftp subsystem エントリを見つけ、このファイルを次のように変更します。
# pfedit /etc/ssh/sshd_config ... # sftp subsystem #Subsystem sftp /usr/lib/ssh/sftp-server Subsystem sftp internal-sftp ... ## Match Group for Subsystem ## At end of file, to follow all global options Match Group sftp ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no
次の変数を使用して chroot のパスを指定できます。
%h – ホームディレクトリを指定します。
%u – 認証されたユーザーのユーザー名を指定します。
%% – % 記号をエスケープします。
実際の chroot 環境内のファイルは異なる可能性があります。
root@client:~# ssh sftponly@server This service allows sftp connections only. Connection to server closed. No shell access, sftp is enforced. root@client:~# sftp sftponly@server sftp> pwd sftp access granted Remote working directory: /chroot directory looks like root directory sftp> ls WWW local.cshrc local.login local.profile sftp> get local.cshrc Fetching /local.cshrc to local.cshrc /local.cshrc 100% 166 0.2KB/s 00:00user can read contents sftp> put /etc/motd Uploading /etc/motd to /motd Couldn't get handle: Permission denieduser cannot write to / directory sftp> cd WWW sftp> put /etc/motd Uploading /etc/motd to /WWW/motd /etc/motd 100% 118 0.1KB/s 00:00user can write to WWW directory sftp> ls -l -rw-r--r-- 1 101 10 118 Jul 20 09:07 motdsuccessful transfer sftp>