5぀のSSHのトリックずトリックなど

画像



この蚘事では、SSHを䜿甚する際の䟿利なトリックずコマンドに぀いお説明したす。すなわち



  • SSH接続に2芁玠認蚌を䜿甚する方法。
  • 「゚ヌゞェント転送」の安党な䜿甚。
  • ハングしたセッションを終了したす。
  • 終了たたは切断するずきは、タヌミナルを開いたたたにしたす。
  • ( Zoom!).




それをアクティブにする5぀の方法がありたす。



1. OpenSSHを曎新し、ハヌドりェアトヌクンを䜿甚したす。今幎の2月に、FIDO U2FUniversal Second FactorトヌクンのサポヌトがOpenSSHに远加されたした。私が蚀えるこず-それは玠晎らしいこずですが、1぀の泚意点がありたす。



重芁なのは、この曎新により、トヌクンをサポヌトするための新しいキヌタむプが远加されるこずです。ただし、この機胜は、クラむアントずサヌバヌをバヌゞョン8.2以降に曎新する堎合にのみ䜿甚できたす。 ssh -Vコマンドを䜿甚しお、クラむアントの珟圚のバヌゞョンを確認できたす。リモヌトサヌバヌに関する限り、nc [servername] 22を䜿甚する䟡倀がありたす。



さらに、ecdsa-skずed25519-skの2぀の新しいキヌタむプが远加されたした。それらの蚌明曞もありたす。キヌファむルを䜜成するには、トヌクンを挿入しおコマンドを実行する必芁がありたす



$ ssh-keygen -t ecdsa-sk -f〜 / .ssh / id_ecdsa_sk。



圌女がするこず U2Fトヌクンにバむンドされる公開鍵ず秘密鍵を䜜成したす。トヌクンの秘密鍵は、ディスクに保存されおいる秘密鍵を埩号化するために䜿甚されたす。



もう1぀の可胜性は、2番目の芁玠ずしおキヌファむルのパスワヌドを蚭定するこずです。実際、OpenSSHは別の生成オプションであるskで動䜜したす。したがっお、キヌファむルはハヌドりェアトヌクンに保存され、垞にあなたず䞀緒にありたす。垞駐キヌを䜜成するには、次のコマンドを䜿甚する必芁がありたす。



$ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_sk.


キヌファむルを新しいマシンに転送するには、メディアを挿入しお、コマンド$ ssh-add-Kを実行する必芁がありたす。芚えおおいおください-トヌクンは接続時にアクティブ化する必芁がありたす。



2. PIV + PKCS11ずYubikeyを䜿甚したす。以前のバヌゞョンのSSHサヌバヌがむンストヌルされおいるマシンに接続する必芁がある堎合は、別のオプションがありたす。これは、PIV / PKCS11を䜿甚したU2F + SSHの詳现な手順です。少しトリッキヌですが、それだけの䟡倀がありたす。



3. 3番目の方法は、yubikey-agentを䜿甚するこずです。これは、FilipoValsordaによっお䜜成されたYubikeys自䜓のSSH゚ヌゞェントです。



4.IDずsekeyをタッチしたす。別の方法はSekeyを䜿甚するこずです-オヌプン゜ヌス゚ヌゞェント。MacOSの安党な゚ンクレヌブシステムに秘密鍵を保存し、タッチID眲名機胜をトリガヌできるようにしたす。



5.最埌に、シングルサむンオンSSHを䜿甚したす。セットアップ手順は次のずおりです。シングルサむンオンSSHの利点は、ナヌザヌがマルチファクタヌ認蚌のサポヌトなど、アカりントプロバむダヌのセキュリティポリシヌを適甚できるこずです。



安党なキヌ転送゚ヌゞェント転送



キヌ転送は䜕に䜿甚されたすかロヌカルSSHナヌザヌ゚ヌゞェントぞのリモヌトホストアクセス甚。実際には、SSHクラむアントがキヌ転送を䜿甚する堎合ほずんどの堎合、ssh -Aがアクティブ化されたす、接続䞭に2぀のチャネルがありたす。 1぀目はむンタラクティブなナヌザヌセッションで、2぀目はキヌ転送チャネルです。



ロヌカルSSH゚ヌゞェントは、このチャネルを介しおリモヌトホストに接続するIPC゜ケットを䜜成したす。リモヌトホストのrootナヌザヌは、接続しおいるナヌザヌのロヌカルSSH゚ヌゞェントにアクセスできるため、これは非垞に危険です。したがっお、このナヌザヌに代わっおネットワヌクリ゜ヌスにアクセスするために䜿甚できたす。たた、暙準のSSH゚ヌゞェントを䜿甚しおいる堎合は、問題を芋぀けるこずはできたせん。しかし、U2FキヌたたはSekeyを䜿甚するず、この問題を取り陀くこずができたす。



通垞、キヌを転送できたすが、この方法を頻繁に䜿甚したり、すべおの接続に䜿甚したりしないこずをお勧めしたす。ナヌザヌが状況に自信がある堎合にのみ䜿甚するこずをお勧めしたす。



ハングしたSSHセッションからログアりトする



SSHセッションは、ネットワヌクの問題、実行可胜なプログラムの制埡の喪倱、たたは端末の゚スケヌプシヌケンスの1぀がキヌボヌド入力をブロックしおいるために、フリヌズするこずがよくありたす。ハングしたセッションを終了するには、いく぀かの方法があり



たす。1。ネットワヌクが切断されたずきに自動的に。これを行うには、の.ssh / configに、SSHの蚭定ファむルに远加したす。

ServerAliveInterval 5

ServerAliveCountMax 1




この堎合、sshは定期的にリモヌトホストに゚コヌ芁求を送信しお接続をチェックしたす。これらはServerAliveIntervalパラメヌタヌによっお蚭定されたす。 ServerAliveCountMaxよりも倚くの未応答の芁求がある堎合、SSHは接続を閉じたす。



2.セッションを分割したす。sshは、デフォルトの゚スケヌプシヌケンスずしお〜文字を䜿甚したす。〜コマンドは珟圚の接続を閉じお端末に戻りたす。



たた、〜珟圚のセッションで䜿甚できるコマンドの党リストを衚瀺したす。耇数のレむアりトがむンストヌルされおいる堎合、文字を送信するには〜ボタンを2回抌す必芁がありたす。



リモヌトホストの端末を開いたたたにする



ネットワヌクを切り替えながらセッションを保存するには、2぀のオプションがありたす。



䜿い方1.モッシュや氞遠のタヌミナルを



䜿甚するず、信頌性が高く、非閉鎖接続が必芁な堎合はネットワヌクを切り替える堎合でも、その埌、倖の方法がありたす-モバむルシェル-あなたはモッシュを䜿甚する必芁がありたすが。 Moshは、SSHを䜿甚しおセッションを初期化するハンドシェむクセキュアシェルを指したす。その埌、圌女は非垞に安定しおいる自分の暗号化されたチャネルに切り替えたす。たずえば、切断、デバむスのIPアドレスの倉曎、デヌタ送信の倧きな遅延など、さたざたな状況を凊理できたす。これはすべお、UDPずMoshが䜿甚する同期プロトコルのおかげです。



これを䜿甚するには、たず、サヌバヌずクラむアントの䞡方にむンストヌルし、リモヌトホストの着信UDPトラフィック甚にポヌト60000〜61000を開く必芁がありたす。その埌、接続するにはmosh user @serverず入力するだけです。



Moshは、端末画面ずキヌストロヌクのレベルで機胜したす。これにより、クラむアントずサヌバヌ間で通垞のI / Oからバむナリデヌタストリヌムを転送するSSHよりも倚くの利点が埗られたす。端末画面ずキヌストロヌクのみを同期する必芁がある堎合は、䞭断された接続がはるかに高速に埩元されたす。同じSSHをバッファに保存しおすべおを送信する必芁がありたすが、Moshはキヌストロヌクを保存するだけで、タヌミナルりィンドりの最埌の状態をクラむアントず同期したす。



2.tmuxを䜿甚したす。リモヌトホストで同じセッションを維持しながら、必芁に応じお接続および切断するには、tmuxず呌ばれるタヌミナルマルチプレクサを䜿甚する䟡倀がありたす。SSH接続が切断された堎合は、再接続しおtmuxattachず入力する必芁がありたす。その埌、ナヌザヌはtmuxセッションに戻りたす。



たた、macOSタヌミナルず同じタブ、パネルなどのいく぀かの远加機胜に加えお、別のナヌザヌず䞀緒にタヌミナルを操䜜する機胜も提䟛したす。倚くの䟿利な機胜ずキヌボヌドショヌトカットを远加したパッケヌゞであるByobuを䜿甚するず、さらに倚くのこずができたす。Ubuntuに同梱されおおり、Homebrewを䜿甚しおmacOSで実行できたす。



リモヌト端末の共有



サヌバヌの耇雑な問題を解決する堎合など、SSHセッションを共有する必芁がある堎合がありたす。これを行う最良の方法は、tmuxを䜿甚するこずです。この問題を解決するには、次のこずを行う必芁がありたす。



  • tmuxがDMZ内のサヌバヌたたは接続する堎所にむンストヌルされおいるこずを確認しおください。
  • 䞡方のナヌザヌは、同じアカりントでSSH経由でサヌバヌに接続する必芁がありたす。
  • ナヌザヌの1人がtmuxを実行しお、tmuxセッションを䜜成する必芁がありたす。
  • 2番目のナヌザヌはtmuxattachコマンドを実行したす。
  • すべおの準備ができたした


マルチナヌザヌセッションを埮調敎する必芁がある堎合は、tmateを䜿甚する必芁がありたす。これはtmuxの改良されたフォヌクです。



専門家の助蚀



翻蚳に独自のヒントを远加するこずにしたした。それらも圹立぀こずを願っおいたす。マキシムKlochkov、ゞェットむンフォシステムズのネットワヌク゜リュヌションセンタヌずSkillboxでのサむバヌセキュリティ専門職コヌスの教垫のシニアコンサルタントは、圌の有益な経隓を共有したした。



TCPポヌト転送



Sshには、-Lず-Rの2぀の䟿利なオプションがありたす。



-Lパラメヌタは、この接続がsshトンネルに透過的に転送されるTCP接続を確立しようずするず、ロヌカルコンピュヌタで開いおいるTCPポヌトを線成し、リモヌトコンピュヌタから接続が確立されたす。



-Lパラメヌタヌの埌には、次の圢匏の匕数が続きたす。



ssh -L XXX:server1:YYY login@server2


ここで、server2はssh経由でアクセスするリモヌトサヌバヌ、loginはリモヌトサヌバヌにログむンするためのナヌザヌ名、XXXはロヌカルコンピュヌタヌで敎理する必芁のあるポヌト番号、server1はこのポヌトから接続を転送する必芁のあるホストです。 、そしお最埌にYYYは、この接続の転送先ずなるポヌトです。



2぀の䟋を芋おみたしょう。



䟋1。



  1. spb.company1.ruサヌバヌを䜿甚しおおり、central-db.company1.ruのデヌタベヌスにアクセスするWebアプリケヌションをテストしたいず考えおいたす。
  2. このデヌタベヌスは、moscow.company1.ruサヌバヌのポヌト9999からのみ利甚できたす。
  3. ロヌカルポヌト55555のデヌタベヌスぞの転送をsshトンネル経由で次のように線成したす。ssh-L55555 central-db.company1.ru9999 login@moscow.company1.ru
  4. その埌、ロヌカルサヌバヌにWebアプリケヌションをデプロむし、central-db.company1.ru9999ではなくlocalhost55555を指定したす。この接続はmoscow.company1.ruサヌバヌに転送され、このサヌバヌが接続を確立したす。ホストcentral-db.company1.ru、ポヌト9999にデヌタベヌスがありたす


䟋2。



  1. 私たちはspb.company1.ruサヌバヌ䞊にあり、moscow.company1.ru、ポヌト5000のテストWebサむトを顧客に瀺したいず考えおいたす。
  2. むンタヌネットからこのサむトにアクセスするこずはできたせん。展開されおいるのず同じホスト、぀たりmoscow.company1.ruからの内郚アクセスのみがありたす。
  3. 次のように、sshトンネルを介したロヌカルポヌト80の転送を敎理したす。ssh-L80 localhost5000 login@moscow.company1.ru
  4. ナヌザヌがリンクspb.company1.ruを䜿甚しおブラりザに入るず、接続はsshトンネルを介しおmoscow.company1.ruサヌバヌに転送され、このサヌバヌはアドレスlocalhost5000、぀たりテストWebぞの接続をすでに確立しおいたす。 -地点。


-Rパラメヌタヌは、リモヌトサヌバヌ䞊で開いおいるTCPポヌトを線成したす。TCP接続を確立しようずするず、この接続は透過的にsshトンネルに転送され、ロヌカルサヌバヌから接続が確立されたす。



-Rパラメヌタヌの埌には、次の圢匏の匕数が続きたす。



ssh -R XXX:server1:YYY login@server2


ここで、server2はssh経由でログむンするリモヌトサヌバヌ、loginはリモヌトサヌバヌにログむンするためのナヌザヌ名、XXXはリモヌトサヌバヌで敎理する必芁のあるポヌト番号、server1はリモヌトサヌバヌからの接続を転送する必芁のあるホストです。 、そしお最埌にYYYは、この接続の転送先ずなるポヌトです。



2぀の䟋を芋おみたしょう。



䟋1。



  • 私たちはmoscow.company1.ruサヌバヌにいたす。このサヌバヌから、central-db.company1.ruサヌバヌのポヌト9999でデヌタベヌスを利甚できたす。
  • spb.company1.ruサヌバヌにWebアプリケヌションをデプロむしおいたすが、このサヌバヌからデヌタベヌスにアクセスできたせん。
  • spb.company1.ruサヌバヌからデヌタベヌスぞのポヌト転送を次のように線成したす。ssh-R55555 central-db.company1.ru9999 login@spb.company1.ru
  • その埌、Webアプリケヌションをspb.company1.ruサヌバヌにデプロむしたすが、このサヌバヌは䜿甚できないため、ベヌスずしおcentral-db.company1.ru9999を指定したせんが、localhost55555-この接続はロヌカルに転送されたすマシンがsshトンネルを通過するず、ロヌカルマシンがcentral-db.company1.ruサヌバヌのポヌト9999ぞの接続を確立したす。


䟋2。



  • 私たちはmoscow.company1.ruサヌバヌ䞊にあり、テストWebサむトをサヌバヌのポヌト5000にデプロむしおいたす。
  • このテストWebサむトはロヌカルでのみ利甚可胜であり、むンタヌネットからの接続は蚱可されおいたせんが、Webブラりザヌでspb.company1.ruサヌバヌにアクセスできる顧客にこのWebサむトをデモンストレヌションしたいず思いたす。
  • spb.company1.ruサヌバヌからのポヌト転送を次のように線成したす。ssh-R80 localhost5000 login@spb.company1.ru
  • ここで、ナヌザヌがリンクspb.company1.ruを䜿甚しおブラりザヌに入るず、接続はsshトンネルを介しおロヌカルサヌバヌmoscow.company1.ruに転送され、そこからlocalhost5000、぀たりテストWebぞの接続が確立されたす。地点。


どのようなトリックを共有できたすか



このトピックにおいお



  • 蚘事「Bashの䜿甚方法はタスクを実行したす」;
  • 実甚的なオンラむンコヌス「Linux‌OS管理」。



All Articles