diff --git a/src/plugins/remotelinux/linuxdeviceconfiguration.cpp b/src/plugins/remotelinux/linuxdeviceconfiguration.cpp
index 1bcb32eb914a6da79104d436df5964e3bc3724c9..ee86d4422d01c4e54ef6226e95972f80aaaa274f 100644
--- a/src/plugins/remotelinux/linuxdeviceconfiguration.cpp
+++ b/src/plugins/remotelinux/linuxdeviceconfiguration.cpp
@@ -59,6 +59,7 @@ const QLatin1String PasswordKey("Password");
 const QLatin1String TimeoutKey("Timeout");
 const QLatin1String IsDefaultKey("IsDefault");
 const QLatin1String InternalIdKey("InternalId");
+const QLatin1String AttributesKey("Attributes");
 
 const AuthType DefaultAuthType(SshConnectionParameters::AuthenticationByKey);
 const int DefaultTimeout(10);
@@ -81,6 +82,7 @@ public:
     bool isDefault;
     LinuxDeviceConfiguration::Origin origin;
     LinuxDeviceConfiguration::Id internalId;
+    QVariantHash attributes;
 };
 
 } // namespace Internal
@@ -105,14 +107,15 @@ LinuxDeviceConfiguration::Ptr LinuxDeviceConfiguration::create(const ConstPtr &o
 
 LinuxDeviceConfiguration::Ptr LinuxDeviceConfiguration::create(const QString &name,
     const QString &osType, DeviceType deviceType, const PortList &freePorts,
-    const SshConnectionParameters &sshParams, Origin origin)
+    const SshConnectionParameters &sshParams, const QVariantHash &attributes, Origin origin)
 {
-    return Ptr(new LinuxDeviceConfiguration(name, osType, deviceType, freePorts, sshParams, origin));
+    return Ptr(new LinuxDeviceConfiguration(name, osType, deviceType, freePorts, sshParams,
+        attributes, origin));
 }
 
 LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QString &name, const QString &osType,
         DeviceType deviceType, const PortList &freePorts, const SshConnectionParameters &sshParams,
-        Origin origin)
+        const QVariantHash &attributes, Origin origin)
     : d(new LinuxDeviceConfigurationPrivate(sshParams))
 {
     d->displayName = name;
@@ -121,6 +124,7 @@ LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QString &name, const QS
     d->freePorts = freePorts;
     d->isDefault = false;
     d->origin = origin;
+    d->attributes = attributes;
 }
 
 LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QSettings &settings, Id &nextId)
@@ -136,6 +140,8 @@ LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QSettings &settings, Id
     if (d->internalId == nextId)
         ++nextId;
 
+    d->attributes = settings.value(AttributesKey).toHash();
+
     // Convert from version < 2.3.
     if (d->osType.isEmpty()) {
         const int oldOsType = settings.value(OldOsVersionKey, -1).toInt();
@@ -169,6 +175,7 @@ LinuxDeviceConfiguration::LinuxDeviceConfiguration(const LinuxDeviceConfiguratio
     d->isDefault = other->d->isDefault;
     d->origin = other->d->origin;
     d->internalId = other->d->internalId;
+    d->attributes = other->d->attributes;
 }
 
 QString LinuxDeviceConfiguration::defaultPrivateKeyFilePath()
@@ -197,6 +204,7 @@ void LinuxDeviceConfiguration::save(QSettings &settings) const
     settings.setValue(TimeoutKey, d->sshParameters.timeout);
     settings.setValue(IsDefaultKey, d->isDefault);
     settings.setValue(InternalIdKey, d->internalId);
+    settings.setValue(AttributesKey, d->attributes);
 }
 
 SshConnectionParameters LinuxDeviceConfiguration::sshParameters() const
@@ -229,6 +237,11 @@ bool LinuxDeviceConfiguration::isAutoDetected() const
     return d->origin == AutoDetected;
 }
 
+QVariantHash LinuxDeviceConfiguration::attributes() const
+{
+    return d->attributes;
+}
+
 PortList LinuxDeviceConfiguration::freePorts() const { return d->freePorts; }
 QString LinuxDeviceConfiguration::displayName() const { return d->displayName; }
 QString LinuxDeviceConfiguration::osType() const { return d->osType; }
diff --git a/src/plugins/remotelinux/linuxdeviceconfiguration.h b/src/plugins/remotelinux/linuxdeviceconfiguration.h
index 9283f09efdfc7690716cb9bc3bd4a3eca64f322f..02b9555cddf04317b821d404862d3d3acc46c86b 100644
--- a/src/plugins/remotelinux/linuxdeviceconfiguration.h
+++ b/src/plugins/remotelinux/linuxdeviceconfiguration.h
@@ -37,6 +37,7 @@
 #include <QtCore/QSharedPointer>
 #include <QtCore/QString>
 #include <QtCore/QStringList>
+#include <QtCore/QVariantHash>
 #include <QtGui/QWizard>
 
 QT_BEGIN_NAMESPACE
@@ -78,6 +79,7 @@ public:
     Id internalId() const;
     bool isDefault() const;
     bool isAutoDetected() const;
+    QVariantHash attributes() const;
 
     static QString defaultPrivateKeyFilePath();
     static QString defaultPublicKeyFilePath();
@@ -86,11 +88,11 @@ public:
 
     static Ptr create(const QString &name, const QString &osType, DeviceType deviceType,
         const PortList &freePorts, const Utils::SshConnectionParameters &sshParams,
-        Origin origin = ManuallyAdded);
+        const QVariantHash &attributes = QVariantHash(), Origin origin = ManuallyAdded);
 private:
     LinuxDeviceConfiguration(const QString &name, const QString &osType, DeviceType deviceType,
         const PortList &freePorts, const Utils::SshConnectionParameters &sshParams,
-        Origin origin);
+        const QVariantHash &attributes, Origin origin);
     LinuxDeviceConfiguration(const QSettings &settings, Id &nextId);
     LinuxDeviceConfiguration(const ConstPtr &other);