SSH、安全なシェル以上のもの

SSH(セキュアシェル) は、基本的にTelnetと同様に、リモートコンピューターに安全にアクセスするのに役立つプロトコルですが、特に組織内で重要な機能を実行するコンピューターにアクセスする場合は、接続を安全に保つのに役立つ暗号化アルゴリズムを使用します。

通常、アクセスするには、ユーザー名とコンピューターのアドレスを入力して、SSHサーバーがアクセスパスワードを要求するようにする必要があります。

ssh usuario@equiporemoto

クライアントがリモートコンピューターと私たちの間の最初の接続を開始した瞬間から、情報はすでに安全に移動しているため、誰かがそのコンピューターへのアクセス資格情報を取得できませんが、SSHは非常に適応性の高いプロトコルであり、多くの可能性を提供します。

SCP

これらの最初のものは、ほとんどのSSHサーバーが実装するSCP(Secure CoPy)を使用するだけで、FTPまたはNFSサーバーをマウントする必要なしに、クライアントとリモートコンピューター間でファイルを転送できるようにすることです。

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

SSHトンネル

この機能は、通常のブラウジングなど、クライアントとリモートコンピュータ間で必ずしもシェルコマンドではない情報を送受信できるため、非常に便利です。 これがどのように使用されるかわからない場合は、次のことを考えてください。ページにアクセスする必要がありますが、そのページを正確にブロックするファイアウォールが実装されている場所にあるため、リモートで「トンネリング」を実行できます。上記のブロックがなく、SSHセッションを介して上記のページを閲覧しているコンピューター:

ssh -D 8888 usuario@equiporemoto

接続されると、SSHクライアントはプロキシサーバーとしてポート8888で「リッスン」します。これにより、ブラウザを構成でき、すべてのトラフィックがSSHセッションを介して送信されます。

SSHトンネル

私に発生する別の例は、地理的な制限のために、トンネルを作成するときに、現在の場所からWebサービスにアクセスできない場合です。このWebサービスは、クライアントIPではなく、リモートサーバーのIPをソースとして検出します。 これは、VPN(仮想プライベートネットワーク)とある程度同等です。

リバースSSH

何らかの理由でファイアウォールの背後にあるコンピューターにアクセスする必要があり、SSHトラフィックをファイアウォールにリダイレクトできない場合は、そのコンピューターが別のSSHサーバーに接続するように「リバースSSH」を実行できます。ファイアウォールの背後にある機器にアクセスするために接続することもできます。 頭に浮かぶ例は、モデムでリダイレクトを構成する方法がわからない友人を支援したいが、彼のコンピューターにリモートでアクセスする必要がある場合です。

友達->モデム-> SSHサーバー<-会社概要

従う手順は比較的簡単です。

アミーゴ
ssh -R 9999:localhost:22 usuario@servidorssh

MYSHIGOTOについて
ssh usuario@servidorssh
SSHサーバー内に入ると、次を使用して友人のチームと接続できます。
ssh amigo@localhost -p 9999

ご覧のとおり、すべての魔法は-Rパラメーターにあります。これは、ポート9999で、友人のコンピューターがサーバーとしてリッスンしていることを中間サーバーに通知します。

これらはSSHが提供するいくつかの可能性にすぎませんが、たとえば、さらにいくつか試してみることをお勧めします。 ほんの数例を挙げると、RSAキーを使用して無人スクリプトを実行し、Xセッション(グラフィカルモード)をグラフィカル環境にリダイレクトできます。


21コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   アストロ

    素晴らしい記事です。家に帰って練習を始めたいと思っています。

    1.    adr14n

      どうもありがとう! これは実際に私の最初のブログ投稿であり、これらのコメントを読むことは非常に素晴らしいことです。 乾杯!

  2.   パブロ・カルドソ

    ちょうど昨日、私はこのトピックについて何か質問していました、そしてそれは次のとおりです。

    フォルダー全体をscpできるが、ファイルの日付を考慮に入れる方法はありますか? つまり、以前にダウンロードしたファイルがたくさんあるフォルダがあり、特定の日付からそのフォルダにアップロードされたものだけをダウンロードすることに興味があります。

    よろしくお願いします。

    1.    エラヴ

      SSH経由のRSYNCでそれを行うことができます。 😉

      1.    ギスカード

        rsyncはjarファイルの蓋です!!! 😀

      2.    エドゥアルド

        私はあなたがユニゾンを試すことをお勧めします、それは壮観です、それはリポジトリで利用可能です(少なくともdebianとubuntu)

        http://www.cis.upenn.edu/~bcpierce/unison/

        私はこれを使用して、別のコンピューターにディレクトリを同期するだけでなく、メモを別のコンピューターに毎日バックアップします。

        とても使いやすいです

        お役に立てば幸いです!

        Exitos
        エドゥアルド

    2.    左利き

      これはrsyncのタスクのように見えますが、具体的にそれを行うためのパラメーターがあるかどうかはわかりません。そうでない場合は、スクリプトから処理する必要があるかもしれません。

    3.    adr14n

      私が思いついたのは、日付順にlsを作成し、そこから必要なものを単純なscpでコピーすることです。これは、scpには言うほど多くの機能がなく、rsyncがあるためです。

  3.   匿名の

    私はリバースSSHが豪華であることを証明します。私は自分のPCと700Km以上離れた別のPCとの間でそれを使用し、問題はありませんでした。
    これらの記事をありがとう、それらは非常に貴重です。

  4.   やめる

    とても塩辛い! ははは、sshにこれほど多くの可能性があることを知りませんでした。すでに、sshサーバーのセットアップ方法を学び、その機能の実験を開始したいと思っています。XNUMXつだけ、各パラメーターの機能を説明していただけますか?

    1.    adr14n

      ssh man自体によると、-Dは「動的アプリケーションフォワーダー」をローカルで指定するのに役立ちます。これは、記事で説明したように、同じSSHセッション内のトンネルを介してトラフィックを渡すのに役立ちます。 -Rは、「転送」を介してローカルコンピューターにリダイレクトされるリモートポートを指定します。 そして最後に、-pは、クライアントが標準ポートを使用しない場合に、クライアントが接続するポートを指定します。22

  5.   マヌエルムドン

    このトピックに触れる良い点は、sshキーについて質問があります。さまざまなサービスに対して複数のキーを生成できますか?彼らはそれについて話します、

    ご挨拶!

    1.    adr14n

      SSLキーによる認証を使用する場合、同じ(コンピューターの)ものを異なるサービスにエクスポートできます。同じように、コンピューターがサーバーの場合は、異なるコンピューターの異なるキーを組み込むことができます。 私があなたの質問に答えたかどうかはわかりませんが、私はそれを理解しました。 乾杯

  6.   ルイス

    sshを介して、アプリケーションをリモートで実行し、ローカルアプリケーションであるかのようにコンピューター上で表示できる方法があったことを覚えていると思います。

    たとえば、Firefoxを実行すると、ローカルコンピューターでFirefoxを表示および制御できますが、プロセスはリモートコンピューターで実行されます。

    リソースが少ないコンピューターで特に役立ちますが、残念ながら私は問題を制御できず、それを行うようにコンピューターを構成する方法がわかりません。

    誰かがそれについて何か知っていますか?

    1.    スタッフ

      そのような場合は、VNCを使用すると便利であり、SSHでトンネリングできます。

      1.    x11テテ11x

        @Staff私にとって、VNCを使用するのは便利ではありません..私が悪くなければ、デスクトップ全体を持ってきてください..

        @Luis、あなたがすることは単に「-X」パラメータをsshに追加することによって行われます(あなたはあなたのサーバーでX転送を許可しなければなりません)

        http://i.imgur.com/NCpfzBL.jpg

      2.    スタッフ

        @ x11tete11x
        ルイスが言ったことを考慮して、私は彼に別の選択肢を提供することを考えました。

        1.「リソースが少ないコンピュータで特に役立ちます...」

        -単一のアプリケーションの場合、それほど多くのリソースを消費しない可能性がありますが、X転送で10個のウィンドウを開こうとすると、VNCは「デスクトップ全体を表示」しないため、単一のVNCインスタンスを使用するよりもシステムの動作が困難になります。
        -クライアントでプログラムを閉じると、サーバーでも同じようになります(私が間違っている場合は誰かが私を修正します)が、VNCを使用すると、たとえば、トレントダウンロードを一晩置いて、午前中に再度ログインして、私が去ったのと同じようにすべてが続くでしょう。
        -VNCはシステムに依存しないプロトコルであり、Win、Andorid、MacOSXなどのクライアントからアクセスできます。 VNCクライアント自体以外のものをインストールすることなく、GNU / Linuxプログラムを使用できます。

        そして2。「...残念ながら私は問題を管理しておらず、それを行うようにコンピューターを構成する方法がわかりません。」

        X構成ファイルを移動するよりも、VNCをインストールしてSSHトンネルを構成する(GUIを使用して行う)方がはるかに簡単です(そして、何か間違ったものを入力してデスクトップなしで再起動するリスクはありません)。

      3.    ルイス

        コメントありがとうございます。

        SSHとSHFSを一緒に使用して、小さなサーバー上のリモートコンテンツに長い間アクセスしてきましたが、グラフィカル環境でリモートアプリケーションを実行することはできませんでした。

        両方のオプションを試して、どのように機能するかを確認します。 x11tete11xによると、パラメータをXNUMXつ追加するだけでよいので、最初に言ったことは簡単に思えます。

        後で、私は少し大きいので、VNCを構成する簡単な方法を見つけることができるかどうかを確認します。私は、Archユーザーなので、wikiに情報があるはずです。別のことは、私が見つけたことです。 Hehehe

        挨拶。

    2.    adr14n

      これは、-Xパラメーターをセッションに渡すことで実行できますが、ネットワーク上のコンピューターからの接続を受け入れるようにXサーバーを構成する必要があります。これはxhostユーティリティで構成されていると思います。 スタッフが言及しているように、VNCも非常に良いオプションです

    3.    マリオ

      これはX11転送です。このサイトには、それに関する投稿があります。
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    ルイス

      情報の友達をありがとう。

      どちらが自分に合っているかを確認するために、両方のオプションを使用して実行します。

      ご挨拶!