Index ソフト・ハード OpenSSH | OpenSSHタスク |
機能・要件 構成・方式 タスク ログイン ホスト認証 ユーザ認証 ssh scp sftp SSHクライアント ssh-keygen TCPWrapper SSHポートF バージョンなど 導入 |
ログイン ・クライアント上で秘密鍵と公開鍵ペアを生成する。 ・公開鍵をサーバに登録する。 ・クライアントからサーバにログインする。 ・ホスト認証 ホスト認証 (フィンガープリントの確認) ・サーバーのSSHサービスが起動している。 # systemctl is-active sshd・ファイアウォールでSSHが許可されている。 # firewall-cmd --list-all・TCP Wrapper でSSH が拒否されていない。 # vi /etc/hosts.deny・ホスト認証の公開鍵(公開鍵暗号方式はECDSAの場合)のフィンガープリントを表示 # ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key・~/.ssh/known_hosts が既に存在する場合は削除(フィンガープリントだけでも良い) $ rm ~/.ssh/known_hosts・サーバーにログイン、表示されたフィンガープリントが、控えと一致を確認 パスワードを入力してログイン・ログアウト、~/.ssh/known_hosts にホスト認証の公開鍵が登録されている $ cat .ssh/known_hostsユーザ認証 (ユーザ認証に公開鍵認証) ・公開鍵暗号方式を使用してユーザ認証(パスワードがネットワークに流れない。) ①サーバで公開鍵認証を許可 設定ファイル/etc/ssh/sshd_config PubkeyAuthentication yes②クライアントでユーザ鍵(公開鍵・秘密鍵)を作成 $ ssh-keygen 秘密鍵にパスフレーズを設定すると、使用時にパスフレーズの入力が必要 (運用効率が下がる。) クライアントで、作成したユーザ鍵を確認 $ ls -l .ssh③クライアントのユーザーの公開鍵をサーバーにコピー $ scp ~/.ssh/id_rsa.pub [email protected]:~/④コピーしたユーザ公開鍵を、サーバのユーザーの~/.ssh/authorized_keysに追記 $ cat id_rsa.pub >> .ssh/authorized_keys⑤~/.ssh/authorized_keysのパーミッションを600に設定 $ chmod 600 .ssh/authorized_keys⑥クライアントからサーバにログイン $ ssh [email protected] パスフレーズはクライアントで秘密鍵を使用するために必要なだけ※サーバに.sshディレクトリがない場合は作成 # mkdir .ssh # chmod 700 .ssh/ssh (OpenSSHのクライアントを操作) ・指定したホストに指定したユーザでログインを試みる。 ・ユーザ名を省略すると、コマンドを実行したユーザと同じユーザ名が指定 ・書式 ssh [ユーザ名@]ホストscp (セキュアコピー) ・リモートホストからまたはリモートホストにファイルをコピー ・ユーザ名を省略すると、コマンドを実行したユーザと同じユーザ名が指定 ・書式 ・リモートホストからローカルへ scp [ユーザ名@]ホスト:パス名パス名・ローカルからリモートホストへ scp パス名[ユーザ名@]ホスト:パス名sftp (ftp コマンドと同様) ・$ sftp [-oPort=ポート番号] [ユーザ名@]ホスト名[:ディレクトリ名] ・mget/mputサブコマンドによる複数ファイルの転送ができない。 SSHクライアント ・SSHクライアント ・Windowsからのリモートアクセス TeraTermなどのSSHクライアントを使用で、Windowsからリモートアクセスできる。ssh-keygen (公開鍵・秘密鍵の管理) ・公開鍵・秘密鍵の生成、管理、変換を行う。 ・書式 ssh-keygen [オプション] $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub $ ssh-keygen -lv -f /etc/ssh/ssh_host_rsa_key.pub・オプション
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key 過去にリモートアクセスしたクライアントからリモートアクセス 中間者攻撃で盗聴を受けている可能性がある、という警告が表示 ~/.ssh/knownhostsファイルの削除で、初回接続の状態からやり直す。TCPWrapperの設定 ・SSHの接続を許可するクライアントの登録「/etc/hosts.allow」 ・設定 ・TCP Wrapperを使用の場合、SSH が拒否されていないこと。 ~]# vi /etc/hosts.denySSHポートフォワーディング ・(例:LinuxのsshクライアントがPOPサーバーと暗号化通信) $ ssh -L 1024:pop3.sectest.jp:110 -l tanaka ssh.sectest.jp (1024以降の任意ポート、接続先とポート、アカウントw定、中継SSHサーバー) SSHクライアントはSSHサーバーとの間に暗号化のトンネルを作成 クライアントはlocalhostへ接続 SSHクライアントからSSHサーバーへ暗号化パケット転送 SSHサーバーからPOPサーバーへ無暗号化パケット転送・ポートフォワーディング(ローカルフォワード) $ ssh -L <ローカルポート番号>:<転送ホスト>:<転送ポート><リモートホスト> ローカルホストの指定ポートへ来た接続を、トンネル経由でリモートホストへ渡し、 さらにそのホストから到達可能な指定ホストのポートへ転送・ポートフォワーディング(リモートフォワード) $ ssh -R <リモートホストのポート番号>:<転送先ホスト>:<転送先ポート><リモートホスト> リモートホストの指定ポートへ来た接続を、トンネル経由でローカルホストへ渡し、 さらにそのホストから到達可能な指定ホストのポートへ転送 自社LANが外部からのSSH接続を許可していない場合、 外部から接続したい場合に、リモートフォワードを内部から確立バージョンなど $ which ssh (sshのパス名) /usr/bin/ssh $ ssh -V (sshクライアントのバージョン) OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 $ rpm -qa | grep -i openssh openssh-server-7.4p1-21.el7.x86_64 openssh-clients-7.4p1-21.el7.x86_64 openssh-7.4p1-21.el7.x86_64 |
All Rights Reserved. Copyright (C) ITCL |