GNU/Linux >> Linux の 問題 >  >> Linux

Linux の世界の Windows ガイ:Linux で SSH コマンドを設定する

Linux と Windows はかつては敵対関係にありましたが、最近ではより仲良くなりました。実際、SSH を Windows でネイティブに使用することもできます。つまり、クライアントとサーバーの両方として使用できます。 Windows 管理者であるが、Linux マシンも管理する必要がある場合、どうしますか? Linux の (Secure Shell) SSH コマンドに慣れます!

これはブログ投稿シリーズ A Windows Guy in a Linux World のパート IV です。一般的な Linux の概念について詳しく知りたい場合は、パート I、パート II、パート III を確認してください。

この投稿では、Linux で SSH を有効にする方法と、リモートの Linux サーバーに接続するように Windows SSH クライアントを設定する方法についてすべて学びます。

注:すべての例で OpenSUSE Linux を使用します。

デスクトップ環境から離れる

このシリーズの最初の投稿に戻ると、チュートリアルでは KDE デスクトップ環境の使用が推奨されていました。 OpenSUSE のセットアップを行っていたときに、別の魅力的なオプションを目にしたことでしょう。 OpenSUSE のサーバー版。

ほとんどの Linux ディストリビューション (OpenSUSE を含む) のサーバー エディションをインストールしたことがある場合は、デスクトップがまったくないことに気付いたかもしれません。最も一般的なディストリビューション (OpenSUSE、Ubuntu Server、CentOS など) のサーバー エディションは、Windows Server Core のようなものです。デスクトップはありません。

Linux 文化でデスクトップが通常敬遠される理由を理解するには、CLI と SSH を理解する必要があります。

SSH:リモート管理のゴールド スタンダード

SSH は、他の多くのリモート管理プロトコルと同様に、クライアント サーバー ベースのシステムです。クライアントは、ネットワーク経由でサーバーにリモート接続し、コマンドを実行 (またはファイルを転送することさえ) できるようにします。 Linux をリモートで管理する場合、SSH はデファクト スタンダードです。

SSH は長い間使用されており、Linux エコシステムに深く組み込まれているため、コマンドライン管理ユーティリティが Linux サーバー環境を支配しています。ほとんどの Linux サーバー ディストリビューションにはグラフィカル インターフェイスがありません。

Linux での SSH コマンドの使用

十分な話。最初に OpenSUSE Linux で SSH を有効にして、SSH で何ができるか見てみましょう。そのためには、YaST パッケージ マネージャーを使用します。 OpenSUSE で YaST を使用して SSH を有効にするには:

<オール>
  • スタート メニューをクリックし、terminal と入力します。 Konsole を選択します OpenSUSE のインストール時に KDE デスクトップ マネージャーをインストールしたと仮定します。
  • ターミナルで、sudo yast を実行して YaST を開きます。 .
  • YaST に入ったら、system まで矢印を下に向けます 、サービス マネージャーに矢印を合わせます Enter キーを押して続行します。
  • sshd への矢印 alt+sを押します SSH サービスを開始します。
  • alt+rを押してください 起動モードを手動から起動時に変更します。これにより、再起動後も SSH サーバー サービスが確実に開始されます。
  • alt+oを押してください ok へ 変更を適用してください。
  • これらの手順は、以下で実際に確認できます。

    ファイアウォールを介した SSH の許可

    ほぼすべての Linux ディストリビューションには、Windows と同様に保護するための何らかのファイアウォールが付属しています。 OpenSUSE のファイアウォールについては、こちらを参照してください。 Windows からリモートで SSH サービスにアクセスできるようにするには、ファイアウォールの通過を許可する必要があります。それを行うには:

    <オール>
  • ターミナルで、sudo yast を使用して YaST を再起動します。 .
  • セキュリティとユーザーへの矢印 ファイアウォールに矢印を移動します Enter キーを押して続行します。
  • ゾーンに移動 –> 公開 Services—Ports に矢印を移動します
  • 下向き矢印で ssh を見つけます
  • ssh を選択 スペースバーを押しながら alt+d を押します 選択を追加します。
  • alt+aを押してください 変更を受け入れる
  • 上記のすべての手順を以下に視覚的に示します。

    Windows と同様に、Linux にはファイアウォール ルールを適用するためのさまざまな信頼レベルがあります。これらのレベルはゾーンと呼ばれます。 Windows には、既定でパブリック ゾーン、ワーク ゾーン、およびプライベート ゾーンがあります。 Linux には他にも多くの機能がありますが、デフォルトでは public ゾーンになります。

    Windows から Linux への接続

    幸いなことに、最近の Windows 10 には SSH クライアントが組み込まれています。 Linux ホストに接続するには、コマンド プロンプト (cmd) または PowerShell コンソールを開き、接続するユーザー名と IP またはホスト名を指定します。

    > ssh @

    すべてがうまくいけば、SSH クライアントはフィンガープリントを受け入れるように要求するはずです。フィンガープリントは、誰かがターゲット IP アドレスをハイジャックしていないことを確認するための識別子です。

    Windows 7 を実行している場合でも、Linux ホストに SSH で接続できます。ここから Microsoft SSH クライアントをダウンロードするだけです。この SSH クライアントは、Windows 10 が使用するものと同じです。

    yes と入力したら パスワードを入力すると、サーバーに接続されます!コンピューター自体でターミナルを開くのと同じように、コマンド ラインを使用できるようになりました。

    SSH (デフォルト ポート 22) をルーター経由でインターネットに公開しないでください。ボットは常にインターネットをクロールします 開いている SSH ポートを探しています。ボットが開いているポートを見つけるとすぐに、パスワードのスパム送信を開始し、力ずくで侵入しようとします。

    Windows での SSH でのマウス サポートの有効化

    ネイティブの Windows 10 SSH クライアントを使用することの大きな欠点の 1 つは (少なくともこの記事の執筆時点では)、マウスのサポートがないことです。これは、以前のブログ投稿で学んだように、ミッドナイト コマンダーではマウスを使用できないことを意味します。

    幸いなことに、OpenSSH Windows クライアントのバージョン 8 以降では、マウスをサポートできます。このクライアントをインストールしましょう。

    <オール>
  • ここから OpenSSH-Win64 の最新リリースをダウンロードし、結果の zip ファイルを解凍します。このチュートリアルでは、~\Downloads\OpenSSH-Win64 に展開することを前提としています。 .
  • PowerShell コンソールを開き、~\Downloads\OpenSSH-Win64 に移動します cd ~\Downloads\OpenSSH-Win64 で .
  • .\\ssh -V を実行して SSH クライアントのバージョンを確認します .このガイドの執筆時点では、バージョンは 8.1.0.0-p1 である必要があります。
  • .\ssh @ を使用して Linux サーバーに SSH で接続します .
  • ログインしたら、mc を実行してマウス サポートをテストします。 マウスを使用できるようにするため、ミッドナイト コマンダーを実行します。
  • 上記のすべての手順を以下に視覚的に示します。

    デフォルトの SSH クライアントのオーバーライド

    新しいバージョンをより永続的に使用したい場合は、次のことができます。ただし、デフォルトの Windows 10 SSH クライアントをオーバーライドする必要があります。これにより、ssh を実行するたびに コマンド ラインでは、新しいバージョン (マウス サポート付き) が使用されます。

    ~\Downloads\OpenSSH-Win64 に抽出されたクライアントがあるとします。 フォルダ

    <オール>
  • 抽出した OpenSSH-Win64 フォルダーを任意の永続フォルダーに移動します。このチュートリアルでは、C:\users\public\OpenSSH-Win64 を使用します .
  • 開始に移動 そして実行 sysdm.cpl と入力します または、システムを開く コントロール パネルから。
  • 上級の下で タブで、[環境変数] をクリックします。 .
  • システム変数の下 、パスをクリックします .
  • [新規] をクリックします 新しいパスを追加し、SSH クライアントへのフォルダー パスを提供します (C:\users\public\OpenSSH-Win64 この場合)
  • [上に移動] をクリックします %SystemRoot%\system32 の上になるまで フォルダ。これにより、 ssh と入力するたびに保証されます コマンド ラインでは、Windows は最初にここを参照します。
  • PowerShell コンソールを開き、ssh -V を実行します .バージョンが 8.1.0.0-p になっているはずです .
  • これらの手順を以下に要約します。

    %SystemRoot%\system32 よりもフォルダを優先する セキュリティ上のリスクになります。誰かがあなたのコンピューターにアクセスできる場合、ウイルスを OpenSSH-Win64 フォルダーに挿入し、cd.exe のような Windows ユーティリティとして名前を付けることができます。 .

    管理者以外は OpenSSH-Win64 フォルダーを読み取り専用に制限する必要があります。

    <オール>
  • OpenSSH-Win64 フォルダを右クリックし、[プロパティ] をクリックします。 .
  • セキュリティの下で タブで、[詳細] をクリックします。 ボタン。
  • [継承を無効にする] をクリックします カスタム フォルダーのアクセス許可を許可し、親フォルダーが OpenSSH-Win64 フォルダーのアクセス許可をオーバーライドしないようにします。
  • [追加] を選択します 、管理者を見つけます グループ化して、完全な権限を与えてください。
  • [追加] をクリックします 、全員を見つけます グループ化して、読み取り専用権限を付与してください。
  • すべての子オブジェクトの置換権限を選択します これらの設定を OpenSSH-Win64 フォルダー内のすべてのファイルに伝播するためのチェックボックス。 [適用] をクリックします .
  • OpenSSH-Win64 フォルダーに新しいファイルを作成して、これらのアクセス許可をテストします。 Windows には管理者プロンプトが必要です。
  • 上記のすべての手順を以下に視覚的に示します。

    Tmux による切断されたセッションの管理

    ああ、なんて痛いんだ! SSH 経由で実行時間の長いコマンドを実行する途中で、インターネットがドロップアウトします。これで、Linux サーバーがどのような状態になっているのかわかりません!そのコマンドで完了ですか?どうやって取り戻すの?

    切断されたセッションは SSH の正当な問題であり、幸運にも簡単な解決策があります。端末マルチプレクサ (tmux) が必要です。

    Tmux は、ターミナル マルチプレクサーの省略形と、プログラム自体の名前の両方を表します

    Tmux は SSH のセッション マネージャーです。切断された場合でもセッションを「保持」し、バックグラウンドで実行し続けます。後でそのセッションに再接続することも、複数のセッションを作成してそれらの間を行き来することもできます。

    tmux で切断されたセッションを管理するには:

    <オール>
  • Linux ターミナルで、sudo zypper install -y tmux を実行して tmux ユーティリティをダウンロードしてインストールします。 以下に示すように:
  • YaST を使用して tmux ユーティリティをダウンロードすることもできます。

    ほとんどの Linux ディストリビューションには、異なるコマンドライン パッケージ マネージャーがあります。 OpenSUSE は zypper を使用します。 Arch は pacman を使用します。 Ubuntu は apt を使用します。 Red Hat は dnf と yum を使用します。ありがたいことに、これらのパッケージ マネージャーの構文は全体的にかなり似ています。

    2. Windows コンピューターで、PowerShell コンソールを開き、Linux サーバーに SSH で接続します。チュートリアルでは homelab のユーザー名を使用します 192.168.134.169 の Linux サーバー IP。

    ssh @

    3. tmux を実行して tmux を開きます 一旦接続。下部に緑色のバーが表示されます

    4. テキストを出力するコマンドを実行します。それが何であるかは問題ではありません。このチュートリアルでは、neofetch を使用しています . ls を実行できます

    5. PowerShell を閉じてセッションを切断します。このアクションはドロップアウトをシミュレートします。

    6. SSH を使用して Linux サーバーに再接続します。

    7. tmux a を実行して、古いセッションに再接続します。 以前の ls の出力がまだ表示されるはずです 指図。万歳、切断によるデータ損失はありません!

    上記のすべての手順を以下に視覚的に示します。

    tmux 内で Midnight Commander ユーティリティを実行しようとした場合 、マウスがサポートされていないことに気付くかもしれません。 mc -x を実行することで修正できます

    ログイン時に tmux を有効にする

    デフォルトでは、tmux はすべての SSH セッションで使用できるわけではありません。ログインするたびに tmux を強制的に SSH セッションに接続することで、これを変更できます。

    Linux サーバーに SSH で接続していると仮定します:

    <オール>
  • mc を使用してミッドナイト コマンダー ユーティリティを開きます。
  • 2. .bashrc を強調表示します ファイルを開き、[編集] をクリックします .

    .bashrc ファイルは、コマンド ライン経由でログインするたびに実行されるシェル (バッチ) スクリプトです

    3. 以下のシェル スクリプト コードをテキスト ファイルの末尾に追加します。

    if [ -z "$TMUX" ]; then tmux attach -t default || tmux new -s default fi

    4. [終了] をクリックします プロンプトが表示されたら保存します。

    5. SSH セッションから切断して再参加することにより、tmux 自動接続をテストします。 tmux に接続していることを示す緑色のバーが下部に自動的に表示されます。 セッション!

    それは実際には tmux の表面をなぞっただけです。 できる、それは非常に強力なマルチタスク プログラムです。 Linux 管理者に最もよく使用するコマンドは何かと尋ねると、おそらく tmux です。 .

    まとめ

    これで、A Windows Guy in a Linux World の最新の投稿を終了します。 ブログ投稿シリーズ。次回のインストールについては、ATA ブログをお楽しみに!


    Linux
    1. Linuxmvコマンド

    2. Linuxduコマンド

    3. Linuxipコマンド

    1. Linuxcdコマンド

    2. Windows での Linux の ~ (チルダ) に相当するものは何ですか?

    3. SSH サーバーが起動するのを待つ Linux コマンド

    1. LinuxでアクティブなSSH接続を見つける方法

    2. Windows で Linux の隠しファイルを非表示にする

    3. Linuxはコマンドをリモートで実行します