SSH経由でサーバーに接続できない-「サーバーがptyの割り当てを拒否しました」


10

Ubuntu 10.10でSTRATO V-PowerServerを実行していますが、最近、sshを介したサーバーへの接続に問題があります。

基本的に私が持っているのはサーバーへのsshアクセスだけであり、必要に応じてすべてのものが/ repairにあるリカバリモードで起動して、システムで修正を行うことができます。

問題は、ssh経由でサーバーに接続しようとすると、次のエラーが発生することです。

Using username "florian".
florian@mydomain.de's password:
Server refused to allocate pty
Linux hwn36335 2.6.18-028stab070.5 #1 SMP Fri Sep 17 15:37:23 MSD 2010 i686 GNU/Linux
     Ubuntu 10.10

                 Welcome to Ubuntu!
                                    * Documentation:  https://help.ubuntu.com/
                                                                              /home/florian/.zlogin:1: command not found: display_info

そのため、シェルが開かず、コマンドを入力できません。私はすでに「サーバーがptyの割り当てを拒否しました」でグーグルしようとしましたが、問題は以前に他の人に起こりましたが、役立つものを見つけることができませんでした。さらに、他のエラーの代わりに、「pty割り当て要求がチャネル0で失敗しました」という別のエラーが発生することもあります。この問題について私が見つけたすべてはこれでした:

http://blog.dinotools.de/2010/10/03/fehler-pty-allocation-request-failed-on-channel-0

しかし、残念ながらそれは助けにはなりませんでした...

誰かがこのエラーが発生する理由と私がそれを修正しようとすることができるものを知っていますか?

あなたが私にヒントを与えることができれば素晴らしいでしょう。私はいくつかの基本的なことを知っており、サーバーでの作業方法を知っていますが、これが問題解決に深く関わる場合、私は限界に達しています... ;-)ありがとうございます!

オプション1:

/var/log/auth.log

Jan 24 16:20:01 h1696522 CRON[3417]: PAM unable to dlopen(/lib/security/pam_smbpass.so): /lib/security/pam_smbpass.so: cannot open shared object file: No such file or directory
Jan 24 16:20:01 h1696522 CRON[3417]: PAM adding faulty module: /lib/security/pam_smbpass.so
Jan 24 16:20:01 h1696522 CRON[3417]: pam_unix(cron:session): session opened for user www-data by (uid=0)
Jan 24 16:20:03 h1696522 CRON[3417]: pam_unix(cron:session): session closed for user www-data

/var/log/daemon.log

Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50003.vdb - dwr50003.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50004.vdb - dwr50004.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50005.vdb - dwr50005.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50006.vdb - dwr50006.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50007.vdb - dwr50007.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50008.vdb - dwr50008.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwr50009.vdb - dwr50009.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/dwrtoday.vdb - dwrtoday.vdb with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/updates/timestamp -    timestamp with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: /var/drweb/bases/update.drl -   update.drl with such CRC32 already exists, downloading has been skipped
Jan 24 16:00:02 h1696522 update.pl[14292]: deleting old files ...
Jan 24 16:00:02 h1696522 update.pl[14292]: moving downloaded files from temporary to working directory ...
Jan 24 16:00:02 h1696522 update.pl[14292]: sending notifications ...
Jan 24 16:00:02 h1696522 update.pl[14292]: summary => updated: 0, removed: 0 files and 0 messages
Jan 24 16:00:02 h1696522 update.pl[14292]: Finish Success:   2011-01-24 16:00:02
Jan 24 16:00:02 h1696522 update.pl[14292]: Socket path is /var/drweb/run/updateSock

1
ptyエラーによって回避されないようにしてください。ユーザーのホームディレクトリ内のファイルは破損していません。別のユーザーを作成し、新しいユーザーのディレクトリにあるデフォルトのファイルと、florianのファイルを比較します。
Patrick R

ありがとう...別のユーザーを追加しましたが、そこにあるファイルは同じです。.bash_rcには若干の違いがありますが、私のシェルはzshに設定されているため、これを使用しようとするべきではありませんよね?@Fussy:auth.logとdaemon.logの最後の行を質問に追加しました。このdrwebのものは、それにはPleskを持っていた元のインストール、(それは私がしばらく前にアップグレードされた8.04に残っていた)からいくつかの残りのようです
florianbaethge

回答:


3

ptyおよびttyデバイスを再作成しようとしましたか?

root@mydomain.de:~# /sbin/MAKEDEV tty
root@mydomain.de:~# /sbin/MAKEDEV pty

仮想サーバーの既知の問題のようです...

シェルにアクセスできない場合は、ssh経由でコマンドを送信してみてください。

florian@localmachine:~$ ssh root@mydomain.de "/sbin/MAKEDEV tty"
florian@localmachine:~$ ssh root@mydomain.de "/sbin/MAKEDEV pty"

コメントを反映するように編集:

chrootを使用する場合は、/ proc、/ devおよび/ sysもマウントする必要があります。

root@h1696522:/# mount -o bind /proc /repair/proc
root@h1696522:/# mount -o bind /dev /repair/dev
root@h1696522:/# mount -o bind /sys /repair/sys

これで動作するはずです。


はい、リカバリモードを使用するときにアクセスできます(および/ repairにchrootします):root @ h1696522:/ home#/ sbin / MAKEDEV tty / sbin / MAKEDEV:警告:/ proc / devices root @ h1696522:/を読み取れませんhome#/ sbin / MAKEDEV pty / sbin / MAKEDEV:警告:/ proc / devicesを読み取れません/ sbin / MAKEDEV:警告:/ proc / devicesを読み取れません
florianbaethge

これでうまくいきました!!! 手伝ってくれてありがとうございます!
florianbaethge

7

コンソールにアクセスできる場合

mount devpts /dev/pts -t devpts

1
rootとしてSSHを実行できる場合(およびシステムがそれを許可するように構成されている場合)、SSHを介して上記の方法を使用できます。実際、私はただやった。 ssh root@host "mount devpts /dev/pts -t devpts"まさに医者が命じたものでした。
Emmaly Wilson、2014

これでうまくいきましたが、今すぐ再起動するたびに実行する必要があります。これを自動化するにはどうすればよいですか?
Andrew Savinykh 2018年

3

このエラーを発見した回数を修正して、udevパッケージがインストールされて実行されていることを証明しました。Udevは、sshが必要とするPTS / xのように、必要なときにデバイスノードを作成します。試してみる。



0

ここに掲載されていることを組み合わせてやらなければならなかった。私の許可は間違っていて、/dev/ptsすでにマウントされていました。

mount -t devpts -o remount,seclabel,nosuid,noexec,uid=0,gid=5,mode=620 devpts /dev/pts

これを使用して、権限が正しいことを確認します。

grep devpts /proc/mounts

また、チェックしてください/dev/pts。これは755で、ルートが所有している必要があります。

ls -dl /dev/pts
chmod 755 /dev/pts
chown root:root /dev/pts

sshd_configファイルを確認します。PermitTTYをnoに設定しないでください。コメントアウトするか、はいに設定します。次に、sshdを再起動します。

vi /etc/ssh/sshd_config
service sshd restart
systemctl restart sshd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.