ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Incompatible ssh peer (no acceptable kex algorithm)

asked 2017-07-15 14:17:31 -0600

chanhyeoni gravatar image

updated 2017-07-15 14:18:57 -0600

I want to launch ros nodes on remote machines using my host computer (the computer is connected to the machine via Ethernet hub). It seems that when the launch file I made makes a ssh connection, it automatically assigns the port number, and that causes the error. Although it says it has incomptabile ssh peer, it is more likely that I need to get rid of the port value than I need to find a proper key algorithm to authenticate ssh connection. So Is there a way not to assign the port number?

Below is the script file


# retrieve the IP address of the inet addr and assign it to the environment variable $ROS_IP

function returnIPAddr(){
    local ip_addr_new=$( echo 'password' | sudo -S nmap -sP | awk '/^Nmap/{ip=$NF}/'$1'/{print ip}')

    echo "$ip_addr_new"

echo "assigning IP address..."
ip_addr=$( ifconfig eth0 | grep "inet " | awk -F'[: ]+' '{ print $4 }' )
echo "ip address retrieved : $ip_addr"
export ROS_MASTER_URI="http://$ip_addr:11311/"
echo "successfully exported ROS_MASTER_URI to $ROS_MASTER_URI"

#run the raspberry pi file
ip_addr_jetson=$(returnIPAddr "00:04:4B")
ip_addr_raspberry_pi=$(returnIPAddr "B8:27:EB")

echo "the address of the jetson is $ip_addr_jetson"
echo "the address of the raspberry pi is $ip_addr_raspberry_pi"

# gnome-terminal -e "./ $ip_addr"
# gnome-terminal -e "./ $ip_addr"


#ssh -oHostKeyAlgorithms='ssh-rsa' $ip_addr_jetson

# build the system
source devel/setup.bash
# roscore

# launch the commands using roslaunch\
roslaunch main.launch jetson_ip:=$ip_addr_jetson pi_ip:=$ip_addr_raspberry_pi host_ip:=$ip_addr

This is the launch file called from the script file

    <arg name="jetson_ip" />
    <arg name="host_ip" />
    <arg name="pi_ip" />

    <machine name="host" address="$(arg host_ip)" env-loader="/opt/ros/indigo/" user="linuxmachine" password="password" default="true"/>
    <machine name="raspberry-pi" address="$(arg pi_ip)" env-loader="/opt/ros/indigo/" user="pi" password="password"/> 
<machine name="tegra-ubuntu" address="$(arg jetson_ip)" ssh-port="" env-loader="/home/catkin_ws/" user="ubuntu" password="password"/>

    <group ns="host">
        <node machine="host" pkg="joy" name="joy_node" type="joy_node" />

    <group ns="tegra-ubuntu">
        <node machine="tegra-ubuntu" pkg="camera_driver_joystick"
name="camera_driver_joystick" type="camera_driver_joystick" />


The env-loader script for the machine (ubuntu) is as follows:

export ROS_WS=/home/catkin_ws
source $ROS_WS/devel/setup.bash
export $PATH=$ROS_ROOT/bin:$PATH
ip_addr=$( ifconfig eth0 | grep "inet " | awk -F '[: ]+' '{print $4}' )
export ROS_MASTER_URI="http://$ip_addr:11311/"
export ROS_HOSTNAME=$ip_addr
exec #@"

I got the following error when I typed the command ./

... logging to /home/linuxmachine/.ros/log/df93fbd6-698f-11e7-909d-507b9de5e4af/roslaunch-linuxmachine-5060.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://linuxmachine:36109/
remote[] starting roslaunch
remote[]: creating ssh connection to, user[ubuntu]
remote[]: failed to launch on tegra-ubuntu:

Unable to establish ssh connection to [ubuntu@]: Incompatible ssh peer (no acceptable kex algorithm)

[192.168.1 ...
edit retag flag offensive close merge delete


Port 22 is the default port for SSH servers. Are you running SSH on a different port on What happens when you try to connect to it using SSH manually? i.e. ssh ubuntu@

Ed Venator gravatar image Ed Venator  ( 2017-07-15 15:01:47 -0600 )edit

Probably unrelated to your problem, but why are you running catkin_make in your env-loader script? The env-loader should set up environment variables and nothing else. Your software should already be built. Also, the last line should be exec "$@"

Ed Venator gravatar image Ed Venator  ( 2017-07-15 15:28:26 -0600 )edit

the ssh command works fine, so no issue with that. And yes, I have to remove catkin_make and change it to exec "$@".

chanhyeoni gravatar image chanhyeoni  ( 2017-07-15 17:15:53 -0600 )edit

so then this has to do with the kex algorithm?

chanhyeoni gravatar image chanhyeoni  ( 2017-07-15 17:24:28 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-07-15 20:29:10 -0600

Ed Venator gravatar image

Try upgrading paramiko, as suggested in the answer to this question.

edit flag offensive delete link more


doesn't work

chanhyeoni gravatar image chanhyeoni  ( 2017-07-18 10:23:01 -0600 )edit

what's the compatible version of paramiko for ubuntu 14.10?

chanhyeoni gravatar image chanhyeoni  ( 2017-07-18 11:08:10 -0600 )edit

or is there a way to disable strict key comparison test?

chanhyeoni gravatar image chanhyeoni  ( 2017-07-18 11:10:53 -0600 )edit

Question Tools

1 follower


Asked: 2017-07-15 14:17:31 -0600

Seen: 2,365 times

Last updated: Jul 15 '17