我有以下应用程序
SpringApplication.run(Application.class, args);
SshServer sshd = SshServer.setUpDefaultServer();
sshd.setHost("localhost");
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
//Accept all keys for authentication
sshd.setPublickeyAuthenticator((s, publicKey, serverSession) -> true);
//Allow username/password authentication using pre-defined credentials
sshd.setPasswordAuthenticator(new PasswordAuthenticator() {
public boolean authenticate(String username, String password, ServerSession session) {
return "tomek".equals(username) && "123".equals(password);
}
});
sshd.setPort(6777);
sshd.start();
打开端口6777上的ssh服务器。现在我把它做了记号
FROM ubuntu:latest
RUN apt update && apt install openssh-server sudo -y
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1000 test
RUN apt-get install -y --no-install-recommends software-properties-common
RUN add-apt-repository -y ppa:openjdk-r/ppa
RUN apt-get update
RUN apt-get install -y openjdk-11-jdk
RUN apt-get install -y openjdk-11-jre
RUN update-alternatives --config java
RUN update-alternatives --config javac
ARG JAR_FILE=target/ssh.demo-0.0.1-SNAPSHOT.jar
# cd /usr/local/runme
# copy target/find-links.jar /usr/local/runme/app.jar
COPY ${JAR_FILE} app.jar
# copy project dependencies
# cp -rf target/lib/ /usr/local/runme/lib
ADD ${JAR_LIB_FILE} lib/
# java -jar /usr/local/runme/app.jar
ENTRYPOINT ["java","-jar","app.jar"]
RUN mkdir /var/run/sshd
CMD ['/usr/sbin/sshd', '-D']
run命令
docker run -p 6662:6777 -d <image_name>
我进入docker容器并使用以下命令成功地ssh到其中
docker exec -it <container_id> /bin/bash
ssh tomek@localhost -p 6777
但是当我使用端口6662从外部ssh它时。
ssh tomek@localhost -p 6662
我犯了以下错误
ssh_exchange_identification: Connection closed by remote host
为什么连接被拒绝了?我必须向主机文件添加任何内容吗
暂无答案!
目前还没有任何答案,快来回答吧!