問題タブ [sshd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 他のサービスで起動すると、Docker が MONGODB を起動せず、IP アドレスが表示されない
serverfault.com で既にこの質問をしています。これら 2 つのサイトで異なる一連の質問が表示されるため、ここでも質問しています (データベースが異なるようです)。
Fedora から OS イメージをビルドしようとして失敗しましたが、以下を開始しました。
- Systemd
- SSHD
- RabbitMQ
- モンゴDB
最初の 3 つ (Systemd、SSHD、RabbitMQ-Server) を動作させることができます。コンテナー内で MongoDB を動作させることもできます。ただし、MongoDB を他の 3 つのサービスと連携させることはできません。
さらに、MongoDB を「ドッキング」しようとすると、IP アドレスが表示されません。
Dockerfile に何か不足していますか?
これが私のdockerfileです:
ビルドに使用される Docker コマンドは次のとおりです。
(1)docker build -t rabbitmq_mongo_heisenbug .
(2)docker run --privileged -d -e 'container=docker' -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 29022:22 -p 29672:15672 -p 29017:27017 rabbitmq_mongo_heisenbug
または.. (3)docker run --privileged -ti -e 'container=docker' -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 29022:22 -p 29672:15672 -p 29017:27017 rabbitmq_mongo_heisenbug
permission-denied - CentOS 7 - sshd: ユーザーのホーム フォルダーが別のパーティションにある場合、authorized_keys でアクセス許可が拒否されました
私は頭がおかしくなる問題があります...少なくとも2時間は修正しようとしましたが、あまり成功しませんでした.
問題自体: Git および gitolite 環境をホストすることになっている VM に CentoS7 をインストールしました (CentOs 7 固有の動作かどうかはわかりません)。必要なサービスとユーザーをインストールしました。すべてが正常に動作しており、パスワードとキーベースの認証を使用して SSH 経由で接続できます。すべてのユーザーのホーム ディレクトリは /home/ にあります。ここで、ホーム ディレクトリとして /srv/data/home/git (/srv は別のパーティションにあります) を持つ新しいユーザー (git) を追加し、キー ベースの認証を有効にします。両方のパーティションは ext4 でフォーマットされています。
gitolite をインストールし、公式ドキュメントに従ってユーザーを作成しました。
gitolite setup コマンドの出力は次のとおりです。
/srv/data/home/git/repositories/gitolite-admin.git/ で空の Git リポジトリを初期化しました /srv/data/home/git/repositories/testing.git/ で空の Git リポジトリを初期化しました 警告: /srv/data/home /git/.ssh/authorized_keys がありません。新しいものを作成する(これは、まったく新しいインストールでは正常です)
次のステップには、継続的に失敗する gitolite-admin リポジトリのクローンが含まれます。
debug3 ログ全体を表示するには、次のリンクをたどってください: http://pastebin.com/eiZSTu55
最も重要な行:
今、私はいくつかのチェックを行いました:
さらにいくつかのテストを行いました。以下の私のテストケースの要約を見つけてください: 結果:うまくいきました!- ホームディレクトリとして /srv/testuser2 を使用してユーザーを作成し、上記とまったく同じことを行いました。結果:authorized_keys ファイルに対するアクセス許可が拒否されました。/home/testuserls をホーム ディレクトリとして新しいユーザーを作成し、.ssh ディレクトリに対して手順を繰り返しました。ここで、/home/testuser3 から /home/testuserls へのシンボリック リンクを作成し、/etc/passwd を変更して、/home/testuser3 をこのユーザーのホーム ディレクトリとして設定しました。結果:うまくいきました!- /srv/testuser4 をホーム ディレクトリとして新しいユーザーを作成し、.ssh フォルダーに配置し、/home/testuser4 から /srv/testuser4 へのシンボリック リンクを作成し、/etc/passwd をもう一度変更してホーム ディレクトリを /home にマップしました。 /testuser4. 結果:
これは私に与えます:
なぜこれが起こるのか、これを修正する方法はわかりません。CentOS7関連ですか?私は盲目ですか、それとも愚かですか?これはバージョン openssh-server-6.4p1-8.el7.x86_64 の ssh デーモンからの新しい制限ですか? 私はグーグルまたはこちら側で同様の問題を見つけられず、解決策を見つけることができませんでした...どんな助けも本当に感謝しています!
更新 I すべてのパーティション (もちろんスワップを除く) は ext4 としてフォーマットされます。/etc/mtab の各行は次のとおりです。
ACL は使用しません。それ以外の場合は、上記の行にマウント オプションとしてリストされているはずですよね? UID 1000 はユーザー git の UID です。
/ から始まるパーミッションを確認しましょう
** アップデート II - 修正済み **
selinux が有効化されていることが判明しました。この問題は、.ssh-Folder で次のコマンドを実行することで修正されました。
linux - リモート SSH セッション [QNX] の PID を取得しますか?
だから私はこれを理解しようとして頭を悩ませてきました、そして私は少し立ち往生しています。
Python の subprocess モジュールと Popen を使用して PuTTY セッションを開き (plink.exe を使用)、リモート ホストに接続しています。これは、セッション出力にアクセスできることを意味します。
コマンドを見つけようとしているか、セッションを処理しているリモート sshd プロセスの PID を教えてくれる実行可能なスクリプトを作成しようとしています。SSH セッションが 1 つしかない場合は、「ps -f | grep sshd」を使用して sshd プロセスを一覧表示し、その行を解析して PID を見つけることができました。
問題は、このホストへの複数の SSH 接続が同時に存在するため、sshd の複数のインスタンスが実行されていることです。同じセッションからコマンドを実行することで、特定のセッションを実行しているプロセスを特定する方法を知っている人はいますか?
注: 次のスクリプトは、OS X および多くの形式の Linux で機能します。
これにより、正しい PID を持つ行が返され、Python で解析できます。残念ながら、「ps」に TTY フィールドが実装されていない QNX を使用しているため、そのフィールドのすべてが単に「?」と表示されます。他のアイデアはありますか?
ありがとう!
git - 1 人のユーザーの SSH キー認証を無効にする
今のところ、すべてのサーバー ユーザーにキー認証を使用していますが、非常にうまく機能しています。今日、私はgitサービスを追加しました。この仕事は、サーバーの内部ユーザーと外部のすべての人にgitリポジトリを提供することです。
すべての git 目的 (デーモン、cgit など...) のために Git ユーザーを作成しましたこのファイルに外部ユーザーのすべての公開鍵を保管することは考えられないことを知っています。
それで、私のサーバーのGitユーザーだけがキー認証とパスワードなしで接続する権利を持っていることを指定する方法はありますか?
事前に、私の英語についてお詫び申し上げます。ありがとう、
ssh - ログインしたら、既存の SSH セッションにトンネルを追加します
EscapeChar : ~C を使用してから、通常の -L 構文を使用して、既存の ssh 接続にトンネリングを追加できることを知っています。できます。私がしたいのは、ログイン時にこれを自動化することです。クライアント側のコマンドラインでは何も指定できません。だから私はサーバーサイドでそれをしなければなりません。クライアントは ssh user@host として接続します。それで全部です。そのため、ログインしたら自分でトンネルを追加します。これを自動化したいと思います。ssh セッションの開始時に -L コマンドを自動的に起動するにはどうすればよいですか?
java - Java Apache sshd トンネル
カスタム sshd サーバーとなる Java アプリケーションを作成したいと考えています。クライアントは、このサーバーへのトンネルを作成できる必要があります。
今、私はこの実用的な例を持っています:
現時点では、最小限の sshd サーバーを使用しています。実行時に、トンネルを構築できます。
ssh user@host -p 2222 -R ポート:ホスト:ポート -N
問題は、ユーザーが同じポートへのトンネルを 2 回作成できないことです。最初の接続は成功しますが、サーバーがトンネルを切断して再接続すると、そのポートは既に使用されています。
2 つ目の問題は、外部 IP 経由で接続できないことです。
たとえば、サーバーは 192.168.1.10 です。クライアントはサーバーへのトンネルを構築し、ポート 2020 を転送します。ここでnmap -p 2020 localhost
、そのポートが開いているnmap -p 2020 192.168.1.10
と言いますが、そのポートは閉じていると言います。
私が尋ねようとしているのは、以前に使用されていた閉じられたポートを sshd サーバーに強制的に再利用させる方法と、外部 IP で開いているポートを通知させる方法です。