文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== ssh サーバーの設定 ====== ===== 基本設定 ===== ==== sshログインメッセージの設定 ==== <code> $ sudo vi /etc/motd </code> <code> Tomoyan.net. Server 1号機 </code> ==== ssh サーバーの設定 ==== 以下のファイルの内容を編集する。<code> $ sudo vi /etc/ssh/sshd_config </code> ==== 標準設定の port 22 の変更 ==== <code> #Port 22 Port 22022 </code> ==== root ユーザーのログインを禁止 ==== <code> #PermitRootLogin yes PermitRootLogin no </code> ==== パスワードではなく鍵によるログインに変更 ==== <code> #PasswordAuthentication yes PasswordAuthentication no </code> ==== 設定の反映 ==== sshd サービスを再起動する。 === CentOS 6 === <code> $ sudo service sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ] </code> === Fedora / CentOS 7 === <code> $ sudo systemctl restart sshd </code> ==== ファイヤーウォール設定 ==== === CentOS 6 === 定義を追記する。 <code> $ sudo vi /etc/sysconfig/iptables </code> <code> -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22022 -j ACCEPT </code> === Fedora / CentOS 7 === 許可されているサービスの確認。 <code> $ sudo firewall-cmd --list-services mdns dhcpv6-client ssh </code> ssh の許可を永続的に削除 <code> $ sudo firewall-cmd --permanent --remove-service=ssh </code> 代わりにポート 22022 を永続的に許可。 <code> $ sudo firewall-cmd --permanent --add-port=22022/tcp </code> firewalld の状態を失わずにリロード。 <code> $ sudo firewall-cmd --reload </code> \\ 許可されているサービスの確認。 <code> $ sudo firewall-cmd --list-services mdns dhcpv6-client </code> 許可されているポートの確認。 <code> $ sudo firewall-cmd --list-ports 22022/tcp </code> ==== sudo の後もエージェントフォワードを引き継ぐ方法 ==== <code> $ sudo visudo </code> <code autoconf> # # Adding HOME to env_keep may enable a user to run unrestricted # commands via sudo. # # Defaults env_keep += "HOME" Defaults env_keep += "SSH_AUTH_SOCK" </code> ==== SSH chroot の設定 ==== === ユーザー作成 === <code autoconf> $ sudo useradd [username] </code> === SSHユーザーのルートディレクトリを作成 === <code autoconf> $ sudo mkdir -p /var/ssh_root/[username] </code> === SSH公開キーの設定 === ※SSHサーバーが公開鍵認証に設定されていることを前提とします。 - SSHの設定を保存するディレクトリを作成。<code> $ sudo mkdir /home/[username]/.ssh </code> - SSHユーザーがオーナーになるように設定。<code autoconf> $ sudo chown [username].[username] /home/[username]/.ssh </code> - オーナーのみアクセスを許可するようにパーミッションを設定。<code autoconf> $ sudo chmod 700 /home/[username]/.ssh </code> - 認証を許可するユーザーの公開鍵(OpenSSH形式)を登録。<code autoconf> $ sudo vi /home/[username]/.ssh/authorized_keys </code><code> ssh-rsa AAAAB... </code> - 公開鍵のオーナー/パーミッションを設定。(これを適切に行わないとssh/sftpの認証エラーが発生する。) <code autoconf> $ sudo chown [username].[username] /home/[username]/.ssh/authorized_keys $ sudo chmod 600 /home/[username]/.ssh/authorized_keys </code> === sshdの設定 === - sshd設定ファイルを編集。<code> $ sudo vi /etc/ssh/sshd_config </code> - sftp-server をコメントアウトして internal-sftp を利用するように変更。<code autoconf> # override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp </code> - ユーザー毎のchroot設定を追加。<code autoconf> Match User [username] ChrootDirectory /var/ssh_root/[username] X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp </code> === sshdの設定を反映 === == Fedora == <code> $ sudo systemctl reload sshd.service </code> == CentOS == <code> $ sudo service sshd reload </code> ===== トラブルシューティング ===== ==== secure ログに subsystem request for sftp failed, subsystem not found が記録される ===== sshd_config に internal-sftp の設定漏れ。 <code> # override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp </code> ===== 参考文献 ===== [[https://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=ssh+%A4%C7+chroot|ssh で chroot - ふなWiki]]\\ linux/openssh/server.txt 最終更新: 2023/03/14 05:30by ともやん